查找MAX值的单个属性

时间:2013-10-11 18:18:18

标签: sql oracle max aggregate

我有2个表Corporations(business_id,corp_name)和Positions(business_id,salary,location)`

  

我正在努力找到收入最高的公司名称   在特定地点的位置。

离。什么公司在奥兰多的薪酬最高? (我只想让公司名称和薪资显示为(NASCAR,90000))

SELECT MAX(salary)
FROM Positions
WHERE location = 'Orlando'
GROUP BY compid

然而,不是一个结果,我得到所有公司和他们在奥兰多的职位薪水。

2 个答案:

答案 0 :(得分:0)

您需要加入这两个表才能获得商家名称。你没有告诉我们compid是什么,但这就是为什么你得到多个结果 - 每个comp_id一个。

假设business_id是公司的外键,这应该可以满足您的需求。

SELECT Corporations.Corp_Name, MAX(Positions.Salary)
FROM Positions
INNER JOIN Corporations ON Corporations.Business_id = Positions.Business_id
WHERE Positions.Location = 'Orlando'


If comp_id is your foreign key, use this
SELECT Corporations.Corp_Name, MAX(Positions.Salary)
FROM Positions
INNER JOIN Corporations ON Corporations.Comp_id = Positions.Comp_id
WHERE Positions.Location = 'Orlando'

答案 1 :(得分:-1)

ISO / ANSI标准SQL代码:

SELECT c.comp_name, p.salary 
FROM Positions  p
  JOIN Corporations  c
    ON c.business_id = p.business_id
WHERE p.location = 'Orlando'
ORDER BY p.salary DESC
  FETCH FIRST 1 ROWS ONLY ;