GROUP BY 分组查询
GROUP BY 属性名 [HAVING 条件表达式][WITH ROLLUP]
1,单独使用(毫无意义);
eg:按年级分组,每个年级查出来一个学生
select * from t_student group by gradeName;
2,与 GROUP_CONCAT()函数一起使用;eg:按年级分组,每个年级查出来对应的所有学生
SELECT gradeName,GROUP_CONCAT(stuName) FROM t_student GROUP BY gradeName;
3,与聚合函数一起使用;
eg:与count()函数结合使用,统计每个年级的人数
select gradeName,count(stuName) from t_student group by gradeName;
4,与 HAVING 一起使用(限制输出的结果);(having相当于对查询结果进行筛选)
eg:在上面的查询条件下,筛选count(stuName)>3的内容显示
select gradeName,count(stuName) from t_student group by gradeName having count(stuName)>3;
5,与 WITH ROLLUP 一起使用(最后加入一个总和行);
eg:统计每个年级的人数,并在最后一行进行统计显示(int型求的是和)
select gradeName,count(stuName) from t_student group by gradeName with rollup;
eg:统计每个年级的人数,并在最后一行进行统计显示(文本的话是把上面显示的都再显示一遍)
select gradeName,group_concat(stuName) from t_student group by gradeName with rollup;