聚集函数
函数 | 说明 |
---|---|
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还能对组进行操作
(未完待续……)