簡體   English   中英

sql子查詢和分組依據

[英]sql subqueries and group by

我正在為我的sql類分配一個作業,我似乎無法弄清楚。 這是精選通緝犯的描述:

僅針對擁有至少4名員工的部門,顯示所有薪水高於其部門同事平均水平的員工。

我已經能夠找到查詢的一部分,例如

select ename 
  from emp
 where sal > any (select avg(sal) 
                    from emp 
                  group by 
                         deptno);

獲得比平均收入更高的員工姓名。

要么

select count(deptno) 
  from emp
group by 
       deptno having count(deptno) > 4;

獲取每個部門的員工人數。

但是以某種方式將它們鏈接在一起是行不通的。 也許有人可以幫我照亮這一點。

您可以將“ 讓子句 ”與“ 分組依據”結合使用

select ename 
  from emp
 where sal > any (select avg(sal) 
                    from emp 
                  group by 
                         deptno) 
having count(*)>4;

只需使用AND子句輸入第二個查詢:

select ename 
  from emp
 where sal > any (select avg(sal) 
                    from emp 
                  group by 
                         deptno)
and deptno in (select deptno
               from emp
               group by 
               deptno having count(deptno) > 4);
select ename 
  from (
        select deptno, count(deptno) 
        from emp
        group by deptno
        having count(deptno) > 4) valid_depts join emp ON emp.deptno=valid_depts.deptno
 where sal > any (select avg(sal) 
                    from emp 
                   group deptno);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM