首页 > 数据库技术 > 详细

记录一句sql语句

时间:2021-07-22 23:37:21      阅读:24      评论:0      收藏:0      [点我收藏+]

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

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的基础上进行了计数,括号里的内容可以看做一个内连接。

记录一句sql语句

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!