ORDER BY要在GROUP BY的后面
1. GROUP BY子句必須出現在WHERE子句之后,ORDER BY子句之前. HAVING語句必須在ORDER BY子句之后。(where先執行,再groupby分組;groupby先分組,having在執行。)
2. 除聚集計算語句外,SELECT語句中的每個列都必須在GROUP BY子
句中給出。count()為聚集函數,vend_id在后面groupby中有,所以select后面有。
select vend_id, count(*) , sales from products group by vend_id;
這個語句,其中sales字段,在group by中沒有,所以查詢的結果,sales的值是錯誤的!!!(切記)
如果想用分組后的,sales的字段,可以采用left join的方式,相當於兩個表匹配的方式,查詢:(原始表B)
select vend_id, sales from B left join (select vend_id, count(*) nums, min(sales) sales from products group by vend_id) as A on B.vend_id = A.vend_id WHERE.......
3. 語句順序