本文为个人学习笔记,材料取自牛客网在线编程
GROUP BY语句通常用于结合sum()函数,根据一个或多个列对结果集进行分组。
例题:
题目描述
按照dept_no进行汇总,属于同一个部门的emp_no按照逗号进行连接,结果给出dept_no以及连接出的结果employees
CREATE TABLE dept_emp
(
emp_no
int(11) NOT NULL,
dept_no
char(4) NOT NULL,
from_date
date NOT NULL,
to_date
date NOT NULL,
PRIMARY KEY (emp_no
,dept_no
));
输出格式:
dept_no | employees |
---|---|
d001 | 10001,10002 |
d002 | 10006 |
d003 | 10005 |
d004 | 10003,10004 |
d005 | 10007,10008,10010 |
d006 | 10009,10010 |
解析:
汇总分组,用到GROUP BY。而group_concat()函数将GROUP BY产生的同一个分组中的值连接起来,返回一个字符串结果。
group_concat(X,Y):X为要连接的字段,Y为连接时用的符号,默认为逗号,可省略。
结果如下:
SELECT dept_no, group_concat(emp_no) AS employees
FROM dept_emp GROUP BY dept_no
总结:
GROUP BY语句用于分组,而利用group_concat()函数可以进行组内连接。