SELECT d.dept_id, d.dept_name, COUNT(e.emp_id)
FROM department d
LEFT JOIN employee e
ON e.dept_id = d.dept_id
GROUP BY d.dept_id, d.dept_name;
DEPT_ID|DEPT_NAME|COUNT(E.EMP_ID)|
-------+---------+---------------+
1|行政管理部| 3|
2|人力资源部| 3|
3|财务部 | 2|
4|研发部 | 9|
5|销售部 | 8|
6|保卫部 | 0|
SELECT d.dept_id, d.dept_name, COUNT(e.emp_id)
FROM department d
LEFT JOIN employee e
ON e.dept_id = d.dept_id
GROUP BY d.dept_id;
SQL 错误 [979] [42000]: ORA-00979: 不是 GROUP BY 表达式
SELECT d.dept_id, MAX(d.dept_name), COUNT(e.emp_id)
FROM department d
LEFT JOIN employee e
ON e.dept_id = d.dept_id
GROUP BY d.dept_id;
DEPT_ID|MAX(D.DEPT_NAME)|COUNT(E.EMP_ID)|
-------+----------------+---------------+
1|行政管理部 | 3|
2|人力资源部 | 3|
3|财务部 | 2|
4|研发部 | 9|
5|销售部 | 8|
6|保卫部 | 0|
SELECT d.dept_id, ANY_VALUE(d.dept_name), COUNT(e.emp_id)
FROM department d
LEFT JOIN employee e
ON e.dept_id = d.dept_id
GROUP BY d.dept_id;
DEPT_ID|ANY_VALUE(D.DEPT_NAME)|COUNT(E.EMP_ID)|
-------+----------------------+---------------+
1|行政管理部 | 3|
2|人力资源部 | 3|
3|财务部 | 2|
4|研发部 | 9|
5|销售部 | 8|
6|保卫部 | 0|
SELECT d.dept_id, ANY_VALUE(d.dept_name), ANY_VALUE(e.emp_name), COUNT(e.emp_id)
FROM department d
LEFT JOIN employee e
ON e.dept_id = d.dept_id
GROUP BY d.dept_id;
DEPT_ID|ANY_VALUE(D.DEPT_NAME)|ANY_VALUE(E.EMP_NAME)|COUNT(E.EMP_ID)|
-------+----------------------+---------------------+---------------+
1|行政管理部 |张飞 | 3|
2|人力资源部 |诸葛亮 | 3|
3|财务部 |孙尚香 | 2|
4|研发部 |赵氏 | 9|
5|销售部 |法正 | 8|
6|保卫部 | | 0|
原文作者:SQL编程思想;如有侵权,请联系管理员删除。