Q:

Объединение дат в периоды по группе с несколькими столбцами

Есть таблица А:
Id1 id2 Dt
--- --- ----------
a   a   01.01.2020
a   a   02.01.2020
a   a   03.01.2020
a   b   04.01.2020
a   b   05.01.2020
a   b   06.01.2020
a   b   07.01.2020
a   c   08.01.2020
a   c   09.01.2020
a   a   10.01.2020
a   a   11.01.2020
a   a   12.01.2020
b   a   01.02.2020
b   a   02.02.2020
b   a   03.02.2020
b   b   04.02.2020
b   b   05.02.2020
b   b   06.02.2020
b   b   07.02.2020
b   c   08.02.2020
b   c   09.02.2020
b   c   10.02.2020
b   d   11.02.2020
b   d   12.02.2020
b   d   13.02.2020
b   d   14.02.2020

И таблица Б:
Id1 id2 dt_start    dt_finish
--- --- ----------  ----------
a   a   01.01.2020  03.01.2020
a   b   04.01.2020  07.01.2020
a   c   08.01.2020  09.01.2020
a   a   10.01.2020  12.01.2020
b   a   01.02.2020  03.02.2020
b   b   04.02.2020  07.02.2020
b   c   08.02.2020  10.02.2020
b   d   11.02.2020  14.02.2020

Как можно из таблицы А получить таблицу Б? 
Думал о рекурсивном запросе, о GROUP BY, но никак не могу найти путь решения.
Данные для таблицы А.

A:

Можно так:
select id1, id2, min (dt) dtstart, max (dt) dtend from (
    select q.*, sum (case when prev != id1||id2 then 1 else 0 end) over (order by dt) grp
    from ( 
        select a.*, lag (id1||id2) over (order by dt) prev
        from A) q
) group by id1, id2, grp order by grp;

Результат как и ожидался:
ID1 ID2 DTSTART    DTEND     
--- --- ---------- ----------
a   a   01.01.2020 03.01.2020
a   b   04.01.2020 07.01.2020
a   c   08.01.2020 09.01.2020
a   a   10.01.2020 12.01.2020
b   a   01.02.2020 03.02.2020
b   b   04.02.2020 07.02.2020
b   c   08.02.2020 10.02.2020
b   d   11.02.2020 14.02.2020

