按版本筛选 SQL
Filter by version SQL
我有以下 table:
Table
我想按最大(版本)过滤每个“UFI”和“PERIODO_QH”。
我曾尝试使用 max(VERSION),但我必须对所有其余列进行分组,因此由于其余列更改了其值,因此我获得了很多版本。
我在这个例子中需要的是只获取2行,每个UFI一个:
UFI
===============================
ALZ1 NUCLEAR 90 200 68,72 68
ALZ2 NUCLEAR 35 100 68,72 39
我应该做什么查询?也许我不应该使用 MAX() 按表达式分组?
提前致谢。
你可以这样做:
select *
from (
select *,
row_number() over(partition by ufi, tecnologia order by version desc) as rn
from t
) x
where rn = 1
我有以下 table: Table
我想按最大(版本)过滤每个“UFI”和“PERIODO_QH”。
我曾尝试使用 max(VERSION),但我必须对所有其余列进行分组,因此由于其余列更改了其值,因此我获得了很多版本。
我在这个例子中需要的是只获取2行,每个UFI一个:
UFI
===============================
ALZ1 NUCLEAR 90 200 68,72 68
ALZ2 NUCLEAR 35 100 68,72 39
我应该做什么查询?也许我不应该使用 MAX() 按表达式分组?
提前致谢。
你可以这样做:
select *
from (
select *,
row_number() over(partition by ufi, tecnologia order by version desc) as rn
from t
) x
where rn = 1