У меня есть набор данных, который выглядит примерно так:Сворачивание диапазоны дат в SQL (Netezza)
Visit ID Admission Date Discharge Date Unit
20 01/01/2015 12:45 01/01/2015 13:57 ER
20 01/03/2015 13:57 01/04/2015 11:57 ER
20 01/04/2015 11:57 01/04/2015 19:32 Trauma
20 01/04/2015 19:32 01/04/2015 21:22 ER
Моя цель, чтобы получить допуск/разряда даты для каждого блока. Проблема в том, что иногда пациенты меняют кровати внутри одного и того же подразделения, и это действие обозначается как передача, хотя пациент все еще находится в одной и той же единице. Поэтому я хотел бы, чтобы свернуть те диапазоны дат, так что вместо этого выводится выглядит следующим образом:
Visit ID Admission Date Discharge Date Unit
20 01/01/2015 12:45 01/01/2015 11:57 ER
20 01/04/2015 11:57 01/04/2015 19:32 Trauma
20 01/04/2015 19:32 01/04/2015 21:22 ER
Я не знаю, как этого добиться ... Я думал о том, что раздел следует использовать, но каждый ранжирования раздела I (rank/dense_rank) присваивает первые два значения ER того же ранга, что и последнее значение ER, что было бы неверным.
В принципе, у меня вопрос такой же, это вопрос без ответа: Collapsing date records only if the value doesn't change - Oracle SQL
Я использую Netezza.
Два вопроса: 1) Являются ли поля в разделе, исходящие от t или tprev? 2) Я не совсем уверен, что делает сумма, я могу видеть результат, но я, по общему признанию, смущен – user3642531
Поля от 't'; 'tprev' используется только для получения информации для флага. 'Sum()' является суммарной суммой, которая используется для назначения группы соседним строкам. Значение должно быть постоянным для того, что вы хотите назвать группой. –
Я понял. И это работает. Благодаря! – user3642531