开发者

Get the whole ROW which has the MAX value of the column SQL Server 2008

开发者 https://www.devze.com 2023-03-13 19:12 出处:网络
开发者_JAVA百科I want to do the above in SQL Server 2008. Any ideas?Like this? Setup: declare @MyTable table(Year int, Month int, Day int, Total int)

Get the whole ROW which has the MAX value of the column SQL Server 2008

开发者_JAVA百科

I want to do the above in SQL Server 2008. Any ideas?


Like this?

Setup:

declare @MyTable table(Year int, Month int, Day int, Total int)

insert @MyTable
values
    (2005, 9, 23, 12),
    (2005, 9, 26, 5),
    (2005, 9, 24, 1),
    (2005, 9, 15, 28),
    (2005, 9, 21, 1),
    (2005, 9, 13, 1),
    (2005, 10, 31, 5),
    (2005, 11, 18, 115),
    (2005, 11, 20, 1),
    (2005, 11, 11, 1),
    (2005, 11, 19, 1)

Query:

;with cte
as
(
    select *,
        row_number() over(partition by Year, Month order by Total desc) RowNumber
    from @MyTable
)
select Year, Month, Day, Total 
from cte
where RowNumber = 1

Output:

Year        Month       Day         Total
----------- ----------- ----------- -----------
2005        9           15          28
2005        10          31          5
2005        11          18          115
0

精彩评论

暂无评论...
验证码 换一张
取 消