查找每个工作类型的薪水低于每个平均工资的员工的姓名 给定的解决方案是:
SELECT ENAME,JOB,SAL
FROM EMP
WHERE SAL<ALL
(SELECT AVG(SAL) FROM EMP
GROUP BY JOB);
SELECT
子句中指定的所有列必须出现在GROUP BY
子句中,但这里不是。内部查询的SELECT
子句不包含作业,尽管它已指定在GROUP BY子句中。
答案 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