什么是分组统计
按水果的种类分组,然后分别汇总
语法
SELECT <字段列表> [聚合函数]
FROM 表
[WHERE] 条件
GROUP BY <字段列表>
其中<字段列表>可以有多个字段,各字段用逗号隔开,它表示按哪些列进行分组。
分组统计牢记:SELECT语句中除聚合函数外,所有列应写在Group By语句后面,否则将出现错误。
示例
统计结果集应包含“城市、性别和人数3列信息”。
很明显应该按照City和Sex两列进行分组。
分组后仍使用Count()聚合函数汇总行数。
SELECT City as 城市, Sex as 性别, Count(*) as 人数 FROM Customers Group By City, Sex
使用HAVING子句对分组结果再次过滤
继续考虑上面的查询,如果“要统计不同城市不同性别的会员个数,并且只显示会员个数大于2个的记录”如何处理呢?
需要对分组后的数据进行筛选, 筛选条件Count(*) >=2。
对分组后的数据进行筛选需要使用Having子句。
SELECT City as 居住城市, Sex as 性别, Count(*) as 会员人数 FROM Customers Group By City, Sex HAVING Count(*) >= 2
分组查询的过滤
WHERE子句:
从数据源中去掉不符合其搜索条件的数据
GROUP BY子句:
搜集数据行到各个组中,统计函数为各个组计算统计值
HAVING子句:
去掉不符合其组搜索条件的各组数据行
where -> group by -> having