Sql 显示超过1的驾驶员和涉及的班次

Sql 显示超过1的驾驶员和涉及的班次,sql,oracle,Sql,Oracle,这个代码不起作用。我知道需要在某个地方包含子查询,但我无法确定是什么和在哪里。谢谢。解决了,这是答案 select dr_drvname, count(sh_drvnum) from driver join shift on dr_drvnum = sh_drvnum where count(sh_drvnum) not like '1' group by dr_drvname; 或者,在加入之前预聚合计数: select dr_drvname, count(sh_drvnum) from d

这个代码不起作用。我知道需要在某个地方包含子查询,但我无法确定是什么和在哪里。谢谢。

解决了,这是答案

select dr_drvname, count(sh_drvnum)
from driver join shift on dr_drvnum = sh_drvnum
where count(sh_drvnum) not like '1'
group by dr_drvname;

或者,在加入之前预聚合计数:

select dr_drvname, count(sh_drvnum)
from driver join shift on dr_drvnum = sh_drvnum
group by dr_drvname
having count(sh_drvnum) > 1;

查找关键字
Having
感谢您的帮助,解决了这个问题。
select dr_drvname,
       shift_count
from   driver inner join (
         select   sh_drvnum,
                  count(*) shift_count
         from     shift
         group by sh_drvnum
         having   count(*) > 1) on (dr_drvname = sh_drvname)