题目描述
有一个部门表 departments 简况如下:

有一个部门员工关系表 dept_emp 简况如下:

有一个职称表 titles 简况如下:

汇总各个部门当前员工的 title 类型的分配数目,将部门编号 dept_no,部门名称 dept_name,其部门下所有员工的 title 以及该类型 title 对应的数目 count 查询出,并将结果按照 dept_no 升序排序

答案解析
本题的考察点还是表的连接以及 GROUP BY 分组的使用
表的连接语句比较简单,使用 WHERE… AND 语句,将多表相同字段作为连接条件
本题的分组是先按照部门进行分组,然后在每个分组后的部门中按照员工的 title 再次分组
所以使用的是 GROUP BY A,B ,该语法是先根据 A 进行分组,分组之后再按照 B 分组
本题的 SQL 语句如下:
SELECTd.dept_no,d.dept_name,t.title,COUNT(*) AS `count`FROM departments AS d,dept_emp AS de,titles AS tWHERE d.dept_no = de.dept_noAND de.emp_no = t.emp_noGROUP BY d.dept_no,t.titleORDER BY d.dept_no;
