SQL Server:如果行具有相同的列值,则取另一列最大值的行
表: 如果行具有匹配的A、B和C列(在本例中为第1行和第2行),则选择具有MAXD的行 结果:SQL Server:如果行具有相同的列值,则取另一列最大值的行,sql,sql-server,greatest-n-per-group,Sql,Sql Server,Greatest N Per Group,表: 如果行具有匹配的A、B和C列(在本例中为第1行和第2行),则选择具有MAXD的行 结果: 下面是一个具有3列和最高ID的示例: select * from ( select row_number() over (partition by A, B, C order by ID desc) as rn , * from Table1 ) sub where rn = 1 -- Only high
下面是一个具有3列和最高ID的示例:
select *
from (
select row_number() over (partition by A, B, C order by ID desc) as rn
, *
from Table1
) sub
where rn = 1 -- Only highest ID per A, B, C group
这已经被问了好几次了。从tmpTable中选择*,其中ID在通过A、B、C从tmpTable组中选择MAXID;作为重复项应答并重新关闭,尽管重复项仅查找1个匹配列,而不是3个
ID A B C D E
----------------------------------------------
2 4 370692690 917400014333 392 767
3 2 370692690 917400014333 337 367
4 3 370692690 917400014333 269 284
select *
from (
select row_number() over (partition by A, B, C order by ID desc) as rn
, *
from Table1
) sub
where rn = 1 -- Only highest ID per A, B, C group