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还能对组进行操作

(未完待续……)

你可能感兴趣的:(SQL,数据库相关)