У меня есть таблица, которая содержит идентификатор человека, идентификатор_категории, дату начала, дату окончания и категорию.Если начальная дата совпадает с предыдущей конечной датой, то это продолжение и просто означает изменение категории.В течение непрерывного периода дат может быть много изменений Категории.
Я хочу вернуть Первую дату начала и Последнюю дату окончания и Тип категории для каждого человека.
Я думал об идентификации всех тех, ктоиметь непрерывный период даты для человека и возвращать максимальные и минимальные значения и т. д. Но это не учитывает, когда у человека есть несколько непрерывных периодов дат, то есть один период заканчивается, и происходит перерыв, а затем существует другой непрерывный период с изменениями категории.
Пример вывода:
+---------+------------+------------+---------------+
| ID | start_dt | end_dt | category_type |
+---------+------------+------------+---------------+
| 8105755 | 26/01/2016 | 21/04/2016 | D |
| 8105859 | 21/04/2016 | 22/04/2016 | A |
| 8105861 | 22/04/2016 | 26/04/2016 | D |
| 8105870 | 26/04/2016 | 19/10/2016 | A |
+---------+------------+------------+---------------+
Так что в этом случае end_dt совпадает с предыдущим start_dt для каждой строки, это непрерывный период, поэтому я хочу вернуть одну строку сПервая дата начала, последняя дата окончания и тип последней категории, как показано ниже:
+---------+------------+------------+---------------+
| ID | start_dt | end_dt | category_type |
+---------+------------+------------+---------------+
| 8105870 | 26/01/2016 | 19/10/2016 | A |
+---------+------------+------------+---------------+