【SQL】(十):分组数据
2020-07-13 本文已影响0人
Lottie2017
本系列为自己学习时的笔记及心得体会,转载请注明出处。
1、数据分组
如果要返回每个供应商提供的产品数据,那就需要使用分组了。
使用分组可以将数据分为多个逻辑组,对每个组进行聚集计算。
select vend_id,COUNT(*) AS num_prods
FROM Products
GROUP BY vend_id
输出如下:
返回每个供应商下的商品数量注意:GROUP BY 子句必须出现在WHERE子句之后,ORDER BY子句之前。
2、过滤分组
因为WHERE子句只能过滤行,所以我们这里使用HAVING 来过滤分组。WHERE的所有技术和选项都适用于HAVING。
select vend_id,COUNT(*) AS num_prods
FROM Products
GROUP BY vend_id
HAVING COUNT(*)>2
返回有两个以上商品的供应商
对比如下语句,可发现:
△WHERE是在数据分组前进行过滤,HAVING在数据分组后进行过滤。
select vend_id,COUNT(*) AS num_prods
FROM Products
where prod_price>=4
GROUP BY vend_id
HAVING COUNT(*)>2
返回有两个以上 商品价格大于4的商品的供应商
3、对结果进行排序
使用ORDER BY。如下:
先GROUP BY获取结果,后ORDER BY排序4、SELECT语句中子句的顺序
SELECT-》FROM-》WHERE-》GROUP BY-》HAVING-》ORDER BY