Мне нужно считать дни подряд, чтобы определить мои когорты. У меня есть таблица, которая выглядит следующим образом:
pat_id admin_date
----------------------------
1 3/10/2019
1 3/11/2019
1 3/23/2019
1 3/24/2019
1 3/25/2019
2 12/26/2017
2 2/27/2019
2 3/16/2019
2 3/17/2019
Я хочу, например, вывод:
pat_id admin_date consecutive
--------------------------------------------
1 3/10/2019 1
1 3/11/2019 2
1 3/23/2019 1
1 3/24/2019 2
1 3/25/2019 3
2 12/26/2017 1
2 2/27/2019 1
2 3/16/2019 1
2 3/17/2019 2
, чтобы я мог использовать значение этих дней подряд (для pat_id) для фильтрации для моей когорты , Я видел несколько постов, которые предлагали использовать DateDiff / DateAdd с row_number, например:
datediff(day, -row_number() over (partition by mrn order by admin_date), admin_date)
, но функции datediff / dateadd не будут работать на Netezza ...
Ближайший I До сих пор было:
select row_number() over (partition by mrn order by administration_date) as consecutive
, который не распознает разрыв между датами и возвращает такой вывод:
pat_id admin_date consecutive
--------------------------------------------
1 3/10/2019 1
1 3/11/2019 2
1 3/23/2019 3
1 3/24/2019 4
1 3/25/2019 5
2 12/26/2017 1
2 2/27/2019 2
2 3/16/2019 3
2 3/17/2019 4
Кто-нибудь знает, как справиться с этим?