Я пытаюсь агрегировать перекрывающиеся даты вступления в силу. Любые промежутки между датами следует рассматривать как отдельные строки. Я использую min и max, и я получаю результат ниже, но хотел бы увидеть ожидаемый результат.
Мой запрос
WITH test_data AS (
SELECT '2020-01-01' AS date_from,
'2020-01-03' AS date_to,
'1' AS product
UNION ALL
SELECT '2020-01-05' AS date_from,
'2020-01-07' AS date_to,
'1' AS product
UNION ALL
SELECT '2020-01-06' AS date_from,
'2020-01-10' AS date_to,
'1' AS product
)
SELECT product,
MIN(date_from) AS date_from,
MAX(date_to) AS date_to
FROM test_data
GROUP BY 1;
Исходные данные
date_from | date_to | product |
---|---|---|
2020-01-01 | 2020-01-03 | 1 |
2020-01-05 | 2020-01-07 | 1 |
2020-01-06 | 2020-01-10 | 1 |
Выходная таблица
date_from | date_to | product |
---|---|---|
2020-01-01 | 2020-01-10 | 1 |
Ожидаемый результат
date_from | date_to | product |
---|---|---|
2020-01-01 | 2020-01-03 | 1 |
2020-01-05 | 2020-01-10 | 1 |
Заранее спасибо !