我有两个select语句,可以找到特定角色的最高工资。 现在我希望获得这些select语句的两个返回值的最大值。 请考虑以下代码:
SELECT MAX(SALARY)
FROM TABLE1
WHERE ROLE = 'MANAGER'
SELECT MAX(SALARY)
FROM TABLE1
WHERE ROLE = 'DEVELOPER';
最后我想要这两个数字的最大值。
如何在一个查询中完成所有这些操作?
有两个选择最大值,然后比较这些最大值并给出两个最大值的最大值?
答案 0 :(得分:10)
如果您希望获得更多职位的最大分数,请在“IN”数组中添加该职位。无需为每个职位编写一个select语句。
SELECT MAX(SALARY) FROM TABLE1 WHERE ROLE IN ('MANAGER','DEVELOPER')
答案 1 :(得分:9)
由于两个选择从同一个表中读取,因此您可以这样做:
SELECT MAX(SALARY) FROM TABLE1 WHERE ROLE = 'MANAGER' OR ROLE = 'DEVELOPER'
答案 2 :(得分:4)
你可以找出最高工资和有这样薪水的角色。
SELECT * FROM
(
SELECT MAX(SALARY) MAXSALARY, ROLE
FROM TABLE1
WHERE ROLE IN ('MANAGER','DEVELOPER')
GROUP BY ROLE
ORDER BY MAX(SALARY)
)
WHERE ROWNUM = 1
答案 3 :(得分:3)
这可以通过一个选择语句来解决,该语句因角色而异。
SELECT MAX(SALARY) FROM TABLE1 WHERE ROLE = 'MANAGER' OR ROLE = 'DEVELOPER'