我有看起来像这样的数据 (SELECT * FROM t)
ID | VERSION | ...
====================
1 | 2 | ...
1 | 1 | ...
2 | 3 | ...
2 | 2 | ...
2 | 1 | ...
....
如何为每个唯一 ID 值仅获取第一行(具有最大版本)?
ID | VERSION | ...
====================
1 | 2 | ...
2 | 3 | ...
....
您可以使用 row_number 分析函数对每个 ID 列的行进行排名,然后仅过滤掉 rnb = 1 的行:
select *
from (
select t.*, row_number()over(partition by ID order by VERSION desc) rnb
from Your_table t
)
where rnb = 1
;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句