Я создал таблицу, которая выглядит примерно так:Построить столбец группировки в SQL Server 2012
ID TSPPLY_DT NEXT_DT DAYS_BTWN TIME_TO_EVENT CENSORED ENDPOINT
-----------------------------------------------------------------------------
1 2014-01-01 2014-01-10 10 10 0 0
1 2014-01-10 2014-01-21 11 21 0 0
1 2014-01-21 NULL NULL 21 1 0
2 2015-04-01 2015-04-30 30 30 0 0
2 2015-04-30 2015-05-03 1 31 0 1
2 2015-05-03 2015-05-06 3 34(should be 3)0 0
2 2015-05-06 2015-05-16 10 44(shouldbe 13)1 0
Столбец TIME_TO_EVENT
однако не сложение правильно с моим кодом - Идея заключается в том, чтобы сложить дни между пока либо ID
изменения, CENSORED
= 1 или ENDPOINT
не = 1.
Я думаю, что мне нужно, это столбец дополнение, где я могу суммировать на основе совокупности ID
и GROUPING
... С выходом следующим образом:
ID TSPPLY_DT NEXT_DT DAYS_BTWN TIME_TO_EVENT CENSORED ENDPOINT GROUPING
----------------------------------------------------------------------------------------
1 2014-01-01 2014-01-10 10 10 0 0 A
1 2014-01-10 2014-01-21 11 21 0 0 A
1 2014-01-21 NULL NULL 21 1 0 A
2 2015-04-01 2015-04-30 30 30 0 0 A
2 2015-04-30 2015-05-03 1 31 0 1 A
2 2015-05-03 2015-05-06 3 3 0 0 B
2 2015-05-06 2015-05-16 10 13 1 0 B
Итак, любые идеи о том, как создать столбец GROUPING
? Это будет что-то вроде IF Следующие строки ID
- это то же самое, что и текущая строка, проверьте CENSORED
AND ENDPOINT
. Если либо = 1, то для следующей строки измените группировку на новое значение. Когда достигнут новый ID
, сбросьте grouping
на A (или любое другое произвольное значение) и повторите тест.
Спасибо, но моя колонка DAYS_BTWN работает правильно. Проблема конкретно в столбце TIME_TO_EVENT. Если вы видите первый пример данных, я прокомментировал строки, которые скомпилированы неправильно. – Brrrr