簡體   English   中英

Oracle SQL - 兩個select語句中的最大值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM