【发布时间】:2014-10-26 01:22:09
【问题描述】:
我在 Oracle DB 上的 SQL 查询有问题。我有以下表格:
DEPARTMENT(`ID` NUMBER(11), `NAME` VARCHAR(25))
EMPLOYEE(`ID` INT(11), `LASTNAME` VARCHAR(25), `DEP_ID` INT(11));
SALARIES(`ID` INT(11), `EMPLOYEE_ID` INT(11), `SALARY` INT(11));
现在,我想获得平均工资最高的部门名称。 Department 与 Salaries 没有直接关系,所以我可能还需要使用 Employee 表。
我创建了一个查询:
SELECT NAME, (SELECT SUM(SALARIES.SALARY) FROM SALARIES JOIN EMPLOYEE ON EMPLOYEE.EMPLOYEE_ID = EMPLOYEE.ID WHERE EMPLOYEE.DEP_ID = DEPARTMENT.ID GROUP BY EMPLOYEE.ID) AS AVG_OF_SUM FROM DEPARTMENT;
它返回部门名称和平均总和的列表。但现在我只需要为最高平均行获取一个部门名称。
我的查询真的可以吗?还是可以改进?我怎样才能只获得一条记录?
感谢您的帮助。
问候, D
【问题讨论】:
-
什么是“最高平均金额”?