Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 列出所有拥有至少3名员工的老板_Sql_Group By_Having - Fatal编程技术网

Sql 列出所有拥有至少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_

我如何查询下表以获得所有老板的姓名(即老板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_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