我需要根据表中的条件选择值,例如:
Id name value status priority
1 ram 23 p high
1 kev 23 p Medi
1 Mac 23 h high
2 Dot 25 f low
2 Dot 25 h Avg
3 Pat 25 f low
3 vin 25 u low
如果您看到status = h,则在选择
期间,应根据id列将优先级列更改为高结果必须在表格
之下 Id name value status priority
1 ram 23 p high
1 kev 23 p high
1 Mac 23 h high
2 Dot 25 f high
2 Dot 25 h high
3 Pat 25 f low
3 vin 25 u low
帮帮我
答案 0 :(得分:3)
如果我理解正确,你需要带有一些条件逻辑的窗口函数:
select t.id, t.name, t.value, t.status,
(case when sum(case when status = 'h' then 1 else 0 end) over (partition by id) > 0
then 'high'
else priority
end) as priority
from t;