SELECT TOP record for each year

前端 未结 3 1407
天涯浪人
天涯浪人 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:05

    You can do this bit more compactly in SQL Server 2008 as follows:

    select top (1) with ties
      C.CompanyName,
      Year(O.OrderDate) as Yr,
      sum(OD.Quantity) as Total
    from Orders as O
    join Customers as C on C.CustomerID = O.CustomerID
    join "Order Details" as OD on OD.OrderID = O.OrderID
    group by C.CompanyName, Year(O.OrderDate)
    order by 
      row_number() over (
        partition by Year(O.OrderDate)
        order by sum(OD.Quantity) desc
      );
    

提交回复
热议问题