![](/img/trans.png)
[英]ORACLE SQL get difference of two values retrieved from 2 select statements
[英]Oracle SQL - Maximum from two select statements
我有兩個select語句,可以找到特定角色的最高工資。 現在我希望獲得這些select語句的兩個返回值的最大值。 考慮以下代碼:
SELECT MAX(SALARY)
FROM TABLE1
WHERE ROLE = 'MANAGER'
SELECT MAX(SALARY)
FROM TABLE1
WHERE ROLE = 'DEVELOPER';
最后,我想要這兩個數字中的最大值。
我如何在一個查詢中完成所有這些操作?
有兩個選擇最大值,然后比較這些最大值並給出兩個最大值的最大值?
如果您希望獲得更多職位的最大值,請在“IN”數組中添加該職位。 無需為每個職位編寫一個select語句。
SELECT MAX(SALARY) FROM TABLE1 WHERE ROLE IN ('MANAGER','DEVELOPER')
由於兩者都選擇從同一個表讀取,因此您可以這樣做:
SELECT MAX(SALARY) FROM TABLE1 WHERE ROLE = 'MANAGER' OR ROLE = 'DEVELOPER'
你可以找出最高工資和有這樣薪水的角色。
SELECT * FROM
(
SELECT MAX(SALARY) MAXSALARY, ROLE
FROM TABLE1
WHERE ROLE IN ('MANAGER','DEVELOPER')
GROUP BY ROLE
ORDER BY MAX(SALARY)
)
WHERE ROWNUM = 1
這可以通過一個選擇語句來解決,該語句因角色而異。
SELECT MAX(SALARY) FROM TABLE1 WHERE ROLE = 'MANAGER' OR ROLE = 'DEVELOPER'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.