Sql 列出所有拥有至少3名员工的老板
我如何查询下表以获得所有老板的姓名(即老板id=员工id) 谁至少有3名员工?我是否使用“按…分组”功能 谢谢 我使用COUNT*>3是因为我假设,你指的是3名员工,除了老板本人Sql 列出所有拥有至少3名员工的老板,sql,group-by,having,Sql,Group By,Having,我如何查询下表以获得所有老板的姓名(即老板id=员工id) 谁至少有3名员工?我是否使用“按…分组”功能 谢谢 我使用COUNT*>3是因为我假设,你指的是3名员工,除了老板本人 select boss_id, staff_name from staff group by boss_id, staff_name having count(staff_id)>=3 SELECT a.staff_name FROM staff a INNER JOIN ( SELECT boss_
select boss_id, staff_name
from staff
group by boss_id, staff_name
having count(staff_id)>=3
SELECT a.staff_name
FROM staff a
INNER JOIN (
SELECT boss_id,COUNT(*) AS cnt_staff FROM staff GROUP BY boss_id HAVING COUNT(*)>3
) b ON a.boss_id=b.boss_id
WHERE a.staff_id=a.boss_id
它位于结果集中的第2位。如果您只需要员工姓名,只需在“选择”和“分组依据”中省略“上司id”。那么,员工的姓名是您唯一的结果。但是如果在我查找老板姓名的情况下,我可以这样做:从staff where staff\u ID=boss\u ID group by boss\u ID having countSTAFF\u ID>=3@user1225281不,那不可能对我来说这就像是家庭作业…@Bridge:你试过什么吗?我当然试过了,我只是还不熟悉'GROUPBY','having'函数..@user1225281它本质上是一个where子句,但用于与分组一起使用的聚合函数。有关示例,请参见。
SELECT a.staff_name
FROM staff a
INNER JOIN (
SELECT boss_id,COUNT(*) AS cnt_staff FROM staff GROUP BY boss_id HAVING COUNT(*)>3
) b ON a.boss_id=b.boss_id
WHERE a.staff_id=a.boss_id
select S.Boss_ID, X.STAFF_NAME
from STAFF S cross apply (Select staff_name from STAFF S2 where S2.staff_id=S.boss_ID) X
group by S.Boss_ID, X.STAFF_NAME
having count(*)>=3