SQL彙總數據(AVG,COUNT,MAX,MIN,SUM,DISTINCT)分組數據

聚集函數

函數 說明
AVG() 返回某列的平均值
COUNT() 返回某列的行數
MAX() 返回某列的最大值
MIN() 返回某列的最小值
SUM() 返回某列值之和
SELECT AVG(prod_price) AS avg_price
FROM products 
where vend_id =1003;

得到的輸出 是名爲avg_price ,vend_id爲1003的平均值
注意
COUNT(*)所有 包括 NULL
COUNT©不包括NULL

聚集不同值

DISTINCT

SELECT AVG(DISTINCT prod_price) AS avg_price
FROM products 
where vend_id =1003;

因爲同一個價格可能會出現多次,在之前的例子中,無法避免這種情況,而加了DISTINCT 就可以每個價格只計算一次

分組數據

GROUP BY

SELECT vend_id,COUNT(*)  AS num_prods
FROM products 
GROUP BY vend_id ;

得到每 vend_id 有多少個行。
如果想對num_prods的數量進行限制,比如,num_prods>2才選擇。需要在後面進行HAVING 限制

SELECT vend_id,COUNT(*)  AS num_prods
FROM products 
GROUP BY vend_id 
HAVING COUNT(*)>2

注意
HAVING 和WHERE 不一樣,HAVING能應用在所有WHERE應用的場景,就是換了關鍵詞,但是WHERE只能對行進行操作,HAVING還能對組進行操作

(未完待續……)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章