我有这个表,我想让计算列从最右边。我的逻辑如下:
For all IDs For all rows IF (delta <= 2 OR delta = NULL) { "Observation " + counter' } ELSE { counter +1; "Observation " + counter; } reset counter to 1
但是我可以用sql翻译
af7jpaap1#
您可以使用窗口函数执行此操作:
select t.*, sum(case when delta > 2 then 1 else 0 end) over (partition by id order by time end) + 1 from t;
这会产生一个数字。你可以随意构造这个字符串。
1条答案
按热度按时间af7jpaap1#
您可以使用窗口函数执行此操作:
这会产生一个数字。你可以随意构造这个字符串。