天天看点

按照dept_no进行汇总

题目链接

题目描述

按照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

group_concat(要连接的列  [order by <按哪个列排序> asc/desc]  [separator <分隔符>])[] 表示是可选的

思路:

按 dept_no分组, 然后用 group_concat 把结果黏贴起来就可以了 。

mysql 写法:

SELECT dept_no, GROUP_CONCAT(emp_no ORDER BY emp_no ASC   SEPARATOR ',')
FROM dept_emp
GROUP BY dept_no
;
           

 然而mysql的写法不能再评测机通过, 因为评测用的是 sallite 。。。

所以下面不严谨的写法居然给过。。

select dept_no, group_concat(emp_no)
from dept_emp
group by dept_no;