Скажем, у меня есть следующие таблицы базы данных:PL/SQL: Как преобразовать несколько строк с непрерывными временными рамками в одну строку, конвертируя весь временной интервал?
id | from | to
1 | 01-JAN-2015 | 03-MAR-2015
1 | 04-MAR-2015 | 31-AUG-2015
1 | 01-SEP-2015 | 31-DEC-2015
2 | 01-JAN-2015 | 30-JUN-2015
2 | 01-NOV-2015 | 31-DEC-2015
И я хочу подвести итог записи с тем же идентификатором, непрерывных во времени в один ряд, охватывающий полный кадр времени, следующим образом:
id | from | to
1 | 01-JAN-2015 | 31-DEC-2015
2 | 01-JAN-2015 | 30-JUN-2015
2 | 01-NOV-2015 | 31-DEC-2015
Таким образом, поскольку временные рамки являются последовательными и не имеют между ними пробелов, три строки для id 1 могут быть преобразованы в одну единственную строку с минимумом с даты и максимума на сегодняшний день. 2 строки для id 2 останутся такими же, как временные рамки не являются непрерывными.
Я думаю об этом, используя петлю через курсор, но я могу усложнять ситуацию. Любые лучшие идеи? возможно, только с SQL-запросами?
Вау !! ... отличное решение! ... Я бы не подумал иерархические псевдостолбцы могут быть полезными для этого сценария ... Спасибо. – Beto