记录一句sql语句

时间:2021-07-22 23:37:21   收藏:0   阅读:1

查询每个部门的员工个数:

select d.department_id, (
    select count(*) from employees e where e.department_id = d.department_id
    ) 个数 from departments d;

一个直接的思路是将两张表外连接(部门表做主表),再按照部门分组,然后count计算每组的个数。但是这里有个坑,因为有一些个体是没有部门的,所以左连接以后,这些没有员工的部门连接了null。但是如果此时分组计数,这些部门也会被记入,就出现了错误。

正确的做法是代码块区域,只是此时,d.department_id决定了表的结构,于是在每个d.department_id的基础上进行了计数,括号里的内容可以看做一个内连接。

原文:https://www.cnblogs.com/LostSecretGarden/p/15046018.html

评论(0
© 2014 bubuko.com 版权所有 鲁ICP备09046678号-4
打开技术之扣,分享程序人生!