SELECT TOP record for each year

前端 未结 3 1408
天涯浪人
天涯浪人 2021-01-14 10:18

I am trying to recap on my sql skill, now I am trying to run a simple query on northwinddb to show me the top customer for each year, but as soon as I use the TOP function o

3条回答
  •  刺人心
    刺人心 (楼主)
    2021-01-14 11:08

    Thank you for the help. I found a way that allows me to change the number of top customers i want to see for each year. By using Sub queries and Row_Number

    SELECT CompanyName
    ,yr
    ,Total
    FROM(SELECT CompanyName
    , yr
    , Total
    , ROW_NUMBER() OVER(PARTITION BY yr ORDER BY yr, Total DESC) AS RowNumber
    FROM(SELECT DISTINCT CompanyName
        , YEAR(O.OrderDate) AS yr
        ,  SUM(OD.Quantity) OVER(PARTITION BY CompanyName
                                , YEAR(O.OrderDate)) As Total
        FROM Customers C JOIN Orders O
            ON C.CustomerID = O.CustomerID JOIN [Order Details] OD
            ON O.OrderID = OD.OrderID) Tr)Tr2
    Where RowNumber <= 1
    

提交回复
热议问题