如何在没有其他选择项影响计数的情况下通过对值进行分组来计数? (自加入)

问题描述 投票:0回答:0

所以,我想显示哪些员工(姓名)有下属以及他们有多少下属(我使用的是自连接)。 如果我通过查看告诉我们员工老板是谁的“manager_id”列来使用计数和分组,它会很好地工作。 但是,一旦我尝试添加以显示我选择的老板的名字(而不仅仅是他们的 ID),它就会弄乱计数,说他们都只有一个下属。

我尝试使用 group by,但它只告诉我他们都有 1 个下属。

`select e.first_name,e.last_name,count(e.manager_id) as 'Broj zaposlenika'
from  sales.staffs e left join sales.staffs m 
on m.staff_id=e.manager_id
where e.staff_id in (select e.manager_id from  sales.staffs e left join sales.staffs m 
on m.staff_id=e.manager_id)
group by e.manager_id, e.last_name,e.first_name;`

这个显示了正确的员工人数,但是当我再次尝试输入姓名时,计数(员工人数搞砸了)。

select e.manager_id,count(e.manager_id) as 'Broj zaposlenika' from  sales.staffs e left join sales.staffs m  on m.staff_id=e.manager_id group by e.manager_id

sql select group-by self self-join
© www.soinside.com 2019 - 2024. All rights reserved.