题解 | 汇总各个部门当前员工的title类型的分配数目
汇总各个部门当前员工的title类型的分配数目
https://www.nowcoder.com/practice/4bcb6a7d3e39423291d2f7bdbbff87f8
SELECT
de.dept_no,
d.dept_name,
t.title,
COUNT(*) AS count
FROM dept_emp de
LEFT JOIN departments d
ON de.dept_no = d.dept_no
LEFT JOIN titles t
ON de.emp_no = t.emp_no
WHERE t.to_date = '9999-01-01'
GROUP BY de.dept_no, d.dept_name, t.title
ORDER BY de.dept_no, t.title;
GROUP BY里为什么要写d.dept_name?因为 MySQL 的ONLY_FULL_GROUP_BY模式,要求SELECT里的非聚合列,必须全部出现在GROUP BY里。
1 | 汇总各个部门 | 必须按「部门」维度分组 |
2 | 当前员工 | 只保留在职员工(
) |
3 | title 类型的分配数目 | 再按「职位」维度分组,统计每个职位的人数 |
4 | 输出字段 |
、
、
、
|
5 | 排序规则 | 先按
升序,再按
升序 |