Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL Server:如果行具有相同的列值,则取另一列最大值的行_Sql_Sql Server_Greatest N Per Group - Fatal编程技术网

SQL Server:如果行具有相同的列值,则取另一列最大值的行

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

表:

如果行具有匹配的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 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