sql中的group by子句

时间:2013-01-27 06:54:37

标签: sql select

查找每个工作类型的薪水低于每个平均工资的员工的姓名 给定的解决方案是:

SELECT ENAME,JOB,SAL
FROM EMP
   WHERE SAL<ALL
    (SELECT AVG(SAL) FROM EMP
      GROUP BY JOB);

SELECT子句中指定的所有列必须出现在GROUP BY子句中,但这里不是。内部查询的SELECT子句不包含作业,尽管它已指定在GROUP BY子句中。

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您需要列出SAL ary小于每个JOB所有工资平均值的所有员工。

SELECT  a.*
FROM    EMP a
        INNER JOIN
        (
            SELECT  JOB, AVG(SAL) avg_sal
            FROM    EMP
            GROUP   BY JOB
        ) b ON a.JOB = b.JOB
WHERE   a.SAL < b.avg_sal