【问题标题】:Groub by clause in sql [closed]sql中的按子句分组[关闭]
【发布时间】:2013-01-10 19:05:29
【问题描述】:

查找工资低于每种工作的平均工资的员工的姓名 给定的解决方案是:

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

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

【问题讨论】:

标签: sql select


【解决方案1】:

如果我理解正确,您需要列出所有SALary 低于每个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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-17
    • 2015-07-02
    • 2020-11-23
    • 2022-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多