题目描述
有一个部门表 departments
简况如下:
有一个,部门员工关系表 dept_emp
简况如下:
有一个职称表 titles
简况如下:
汇总各个部门当前员工的 title
类型的分配数目,即结果给出部门编号 dept_no
、dept_name
、其部门下所有的员工的 title
以及该类型title对应的数目 count
,结果按照dept_no
升序排序。
考察知识点
内联结、GROUP BY
,ORDER BY
。
解题思路
根据题目的要求,可以先连接 departments
表与 dept_emp
表,添加限定条件 ds.dept_no = de.dept_no
,再连接 titles
表,限定条件为 de.emp_no = t.emp_no
。最后用 GROUP BY
同时对 ds.dept_no
和 title
进行分组,使用COUNT(t.emp_no)
统计相同部门下相同头衔的员工个数。
SELECT ds.dept_no, ds.dept_name, title, COUNT(t.emp_no) AS count
FROM departments AS ds INNER JOIN dept_emp AS de
ON ds.dept_no = de.dept_no
INNER JOIN titles AS t
ON de.emp_no = t.emp_no
GROUP BY ds.dept_no, title
ORDER BY dept_no
题目来源:牛客网-SQL数据库实战题
✅ 每日打卡,❤ 点个赞再走吧!!!❤
后续会继续分享 Mysql 方面的文章,如果感兴趣的话可以点个关注不迷路哦~。