【发布时间】:2015-04-23 22:17:27
【问题描述】:
在 HR 模式中,我想按不同国家/地区的部门列出所有薪水
SELECT E.FIRST_NAME , S.COUNTRY_NAME, S.DEPARTMENT_NAME, S.AVG_SALARY, E.SALARY
FROM EMPLOYEES E JOIN (SELECT COUNTRY_NAME, DEPARTMENT_NAME, ROUND(AVG(SALARY,0) AS "AVG_SALARY", DEPARTMENT_ID
FROM (SELECT SALARY, COUNTRY_NAME, DEPARTMENT_NAME, DEPARTMENT_ID
FROM EMPLOYEES JOIN DEPARTMENTS USING (DEPARTMENT_ID)
JOIN LOCATIONS USING (LOCATION_ID)
JOIN COUNTRIES USING (COUNTRY_ID)
)
GROUP BY COUNTRY_NAME, DEPARTMENT_NAME, DEPARTMENT_ID
) S ON (E.DEPARTMENT_ID=S.DEPARTMENT_ID)
WHERE E.SALARY< S.AVG_SALARY AND E.DEPARTMENT_ID = S.DEPARTMENT_ID
GROUP BY COUNTRY_NAME, DEPARTMENT_NAME, AVG_SALARY, FIRST_NAME, SALARY
ORDER BY COUNTRY_NAME;
【问题讨论】: