How do I select the first row per group in an SQL Query?

后端 未结 9 977
别跟我提以往
别跟我提以往 2020-12-29 09:26

I\'ve got this SQL query:

SELECT   Foo, Bar, SUM(Values) AS Sum
FROM     SomeTable
GROUP BY Foo, Bar
ORDER BY Foo DESC, Sum DESC

This resul

9条回答
  •  情歌与酒
    2020-12-29 09:58

    (EDITED Based on edited question) Then, since you wish to filter based on the value of an aggregated column, what you need is a Having Clause.

      SELECT p.Nick, r.Description, SUM(m.Value) Sum
      FROM Marks m
        JOIN Players p
          ON m.PlayerID = p.ID 
        JOIN Reasons r 
          ON m.ReasonId = r.ID
      GROUP BY p.Nick, r.Description
      Having SUM(m.Value) =
          (Select Max(Sum) From
            (SELECT SUM(m.Value) Sum
             FROM Marks mi
               JOIN Players pi
                  ON mi.PlayerID = pi.ID 
               JOIN Reasons r i
                 ON mi.ReasonId = ri.ID
             Where pi.Nick = p.Nick
             GROUP BY pi.Nick, ri.Description))
    
      Order By p.Nick, Sum Desc
    

提交回复
热议问题