【发布时间】:2018-12-14 21:29:49
【问题描述】:
所以我有两张桌子 EMPLOYEE - 包含 EMPLOYEE_NAME、DEPARTMENT_ID 和 SALARY 列 DEPARTMENTS - 包含 DEPARTMENT_NAME 和 DEPARTMENT_ID 等列
我需要显示部门名称和每个部门的平均工资,并按平均工资排序。
我是数据库新手,遇到了麻烦。 我尝试在 from 字段中执行子查询(此子查询准确返回我需要的内容减去需要我将部门表加入结果的部门名称)子查询中的所有数据都在一个表中 - 员工。而部门名称在部门表中。
这是我尝试过的。
SELECT D.DEPARTMENT_NAME, T.PERDEPT
FROM
(
SELECT DEPARTMENT_ID, AVG(SALARY) AS PERDEPT
FROM EMPLOYEE
GROUP BY DEPARTMENT_ID
ORDER BY PERDEPT
) AS TEST T
JOIN DEPARTMENTS
ON D.DEPARTMENT_ID=T.DEPARTMENT_ID;
这会返回一个
SQL 命令未正确终止
就行了AS TEST T
非常感谢任何和所有帮助 非常感谢
【问题讨论】:
-
命令格式不正确,没有出现换行符
-
只是别名表
DEPARTMENTSasD -
旁注:子查询中的
ORDER BY只不过是希望优化器以某种方式对您的输出进行排序。将排序放在您的顶级查询上,或者得到不稳定的输出。有几个答案指出您甚至不需要子查询 - 对于未来的提问者,考虑到(假设的)数据模型,这可能是正确的,但子查询聚合通常用于解决重复行问题。
标签: sql oracle join subquery aggregate