簡體   English   中英

根據另一個列ID選擇一個列的最大值

[英]Select max of a column based on another column ID

我正在嘗試在具有屬性teamID,salary,yearID的表中獲取每年的最高薪水。 不應該很難嗎? 這是我的查詢:

SELECT teamID, MAX(tS.teamSalary), yearID
FROM
  (SELECT
      teamID,
      sum(salary) AS teamSalary,
      yearID
    FROM salaries
    GROUP BY teamID, yearID) tS
GROUP BY yearID;

內部查詢工作正常,但外部查詢僅報告每個組的第一個teamID。 我究竟做錯了什么?

Inner query output:
A  1  2000
B  1  2000 
C  2  2000
A  2  2001
B  3  2001
A  2  2002
B  2  2002

Full query output: 
A  1  2000
A  2  2001
A  2  2002

Desired output: 
C  2  2000
B  3  2001
A  2  2002

首先,您會按年份獲得maxSalary,然后您將獲得更多信息:

SELECT teamID, salary, yearID
  FROM salaries 
  JOIN
    (SELECT MAX(salary) AS maxSalary,
            yearID
       FROM salaries
   GROUP BY yearID) tS
    ON ts.yearID = salaries.yearID
   AND ts.maxSalary = salaries.salary

編輯:不確定是否要某年的最高薪水,那么它屬於哪個團隊,或者是否要按球隊和年份的最高薪水。 第二個選項在這里:

  SELECT MAX(salary) AS maxSalary, yearID, teamID
    FROM salaries
GROUP BY yearID, teamID

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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