在 MySQL SELECT 语句中,允许使用 GROUP BY 子句,将结果集中的数据行根据选择列的值进行逻辑分组,以便能汇总表内容的子集,实现对每个组而不是对整个结果集进行整合。
语法格式如下:
语法说明如下:
注意:GROUP BY 子句中的各选择列必须也是 SELECT 语句的选择列清单中的一项。
对于 GROUP BY 子句的使用,需要注意以下几点。
【实例】根据 dept_id 对 tb_students_info 表中的数据进行分组,将每个学院的学生姓名显示出来,输入的SQL语句和执行结果如下所示。
mysql> SELECT dept_id,GROUP_CONCAT(name) AS names -> FROM tb_students_info -> GROUP BY dept_id; +---------+---------------+ | dept_id | names | +---------+---------------+ | 1 | Dany,Jane,Jim | | 2 | Henry,John | | 3 | Green,Thomas | | 4 | Susan,Tom | | 6 | Lily | +---------+---------------+ 5 rows in set (0.02 sec)
由运行结果可以看出,根据 dept_id 的不同分别统计了 dept_id 相同的姓名。