我有一个表,其中包含有状态和ID的事件。我想做的是创建符合以下规则的第三列:
- 如果状态为"LIGADO",则new_column=id
- 如果状态不是"Ligado",则new_column=该状态为"Ligadon"的前一行的id
这是一张图片,可以更好地解释我要做的事情。
示例
我认为这与您之前的问题基本相同,只是更改了常数值:
select t.*,
(case when state = 'LIGADO' then id
else max(case when state = 'LIGADO' then id end) over (order by id)
end) as desligado_id
from t;