【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

上一篇下一篇

猜你喜欢

热点阅读