當我在不顯示 Department_id 的情況下嘗試它時,它可以正常作業:
SQL> SELECT MAX(AVG(SALARY)) FROM EMPLOYEE GROUP BY DEPARTMENT_ID;
MAX(AVG(SALARY))
----------------
800000
但是當我也想顯示部門 ID 時,它給了我如下錯誤:
SQL> SELECT DEPARTMENT_ID, MAX(AVG(SALARY)) FROM EMPLOYEE GROUP BY DEPARTMENT_ID;
SELECT DEPARTMENT_ID, MAX(AVG(SALARY)) FROM EMPLOYEE GROUP BY DEPARTMENT_ID
*
ERROR at line 1:
ORA-00937: not a single-group group function
對此有什么解釋嗎?我究竟做錯了什么?我瀏覽了之前類似問題的答案并嘗試了他們的解決方案,但遇到了相同或其他一些錯誤。任何幫助,將不勝感激。
uj5u.com熱心網友回復:
我建議你使用
SELECT department_id, avg_salary
FROM ( SELECT DEPARTMENT_ID,
AVG (SALARY) avg_salary,
RANK () OVER (ORDER BY AVG (salary) DESC) rnk
FROM EMPLOYEE
GROUP BY DEPARTMENT_ID)
WHERE rnk = 1;
IE
- 使用您的第一個查詢作為“來源”
- 此外,按降序排列平均工資(使用
rank決議函式)
- 此外,按降序排列平均工資(使用
- 選擇排名最高的行
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/314312.html
標籤:甲骨文
