Я застрял на этом довольно долгое время, и я не могу понять это. Вот моя проблема: у меня есть два логических столбца condition_1
и condition_2
, и я хочу создать третий столбец inc
, где значение увеличивается каждый раз, когда выполняется это условие if condition_2 is false and lead(condition_1) over(partition by column_x order by column_y) is false
.
Результат будет выглядеть примерно так:
column_x column_y condition_1 condition_2 inc
A 12/03/2020 true true 1
A 13/03/2020 true false 1
A 14/03/2020 false false 2
A 15/03/2020 false true 3
A 16/03/2020 true false 3
A 17/03/2020 false true 4
Делать что-то вроде
if(condition_2 is false and lead(condition_1) over(partition by column_x order by column_y) is false, lag(inc) over(partition by column_x order by column_y) + 1, lag(inc) over(partition by column_x order by column_y)) inc
obv не работает, поскольку inc
еще не существует в то время запроса и выполнение
if(condition_2 is false and lead(condition_1) over(partition by column_x order by column_y) is false, + 1, + 0) inc
не будет инкрементным, поскольку будет сбрасываться до 0 для каждой строки.
Кто-то есть идеи?
Спасибо большое!