获取具有SQL Server 2008列的最大值的整行
我想在SQLServer2008中执行上述操作。有什么想法吗?像这样 设置:获取具有SQL Server 2008列的最大值的整行,sql,sql-server,tsql,sql-server-2008,common-table-expression,Sql,Sql Server,Tsql,Sql Server 2008,Common Table Expression,我想在SQLServer2008中执行上述操作。有什么想法吗?像这样 设置: 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,
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)
查询:
;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
输出:
Year Month Day Total
----------- ----------- ----------- -----------
2005 9 15 28
2005 10 31 5
2005 11 18 115
您希望如何处理最大值由两天共享的月份?可能重复