首页 > 解决方案 > SQL 在具有最大值的表中查找值(结果必须是可编辑的)

问题描述

所以我坚持这个,似乎是一个简单的问题。

我有一张包含一些信息的表格

ID 其他身份证
1 100
2 214
1 1156
3 1252
4
1 240

我现在只想要可编辑查询中具有最高值的行,例如:

| ID       | Other ID           |
| -------- | -------------- |
| 2        | 214    |
| 1        | 1156            |
| 3        | 1252            |
| 4        |           |

但它必须是可编辑的,所以我可以更改此表中的一些其他值。

我试图创建一个查询,其中所有 Max(Date)、ID 都在,并将它们与 JOIN 结合起来。但这使得查询不可编辑

我希望我能很好地描述我的问题以理解......谢谢:D

标签: sqlsql-servermax

解决方案


最简单的方法是使用row_number()

select t.*
from (select t.*,
             row_number() over (partition by id
                                order by otherid desc
                               ) as seqnum
      from t
     ) t
where seqnum = 1;

令人高兴的是,NULL出于排序目的,SQL 将值视为小于任何其他值,因此降序order by将它们放在最后。


推荐阅读