GROUP BY

简介

数据分组使用GROUP BY子句,并且会根据分组的字段进行ASC排序

实例

将学生按照年龄进行分组,并且统计每个年龄的学生人数,结果的排序为:年龄的升序

1
SELECT age,COUNT(*) AS age_count FROM t_student GROUP BY age;

HAVING

简介

分组的数据可以使用HAVING子句进行过滤,在GROUP BY后使用,HAVING后接一个条件,然后就可以筛选出满足条件的数据

实例

将学生按照年龄进行分组且学生年龄大于11岁,并且统计每个年龄的学生人数,结果的排序为:年龄的升序

1
SELECT age,COUNT(*) AS age_count FROM t_student GROUP BY age HAVING age>11;

排序

简介

一般在使用GROUP BY子句时,应该也给出ORDER BY子句。这是保证数据正确排序的唯一方法,千万不要仅依赖GROUP BY排序数据

实例

将学生按照年龄进行分组且学生年龄大于11岁,并且统计每个年龄的学生人数,结果的排序为:该年龄人数的升序

1
SELECT age,COUNT(*) AS age_count FROM t_student GROUP BY age HAVING age>11 ORDER BY age_count;