Я пытаюсь создать столбец с именем previous_month
, который на основе групп различного типа / идентификатора выглядит для предыдущей строки, если month_in
на месяц меньше текущей строки, и если да, то previous_month
= Верно, иначе False.
type id month_in previous_month
a 1 2019-09-01 FALSE
a 1 2019-10-01 TRUE
a 1 2019-11-01 TRUE
a 1 2020-02-01 FALSE
a 2 2020-01-01 FALSE
a 2 2020-02-01 TRUE
Я пытался использовать функцию задержки
Select
type,
id,
month_for,
lag(True, 1, False) over (partition by type, id order by type, id, month_for) as previous_month
from myTable
, однако это не учитывает, когда month_in
увеличивается более чем на один месяц, т.е. Я получаю эту таблицу:
type id month_in previous_month
a 1 2019-09-01 FALSE
a 1 2019-10-01 TRUE
a 1 2019-11-01 TRUE
a 1 2020-02-01 TRUE
a 2 2020-01-01 FALSE
a 2 2020-02-01 TRUE
Есть предложения, если это возможно с функцией задержки? или если не самый эффективный способ добиться этого? Я работаю в снежинке sql.