Разверните дату начала и окончания в sql Снежинка - PullRequest
1 голос
/ 01 мая 2020

У меня есть следующая проблема:

В таблице базы данных «снежинка» у меня есть поле с именем «Дата начала» и другое поле с именем «Дата окончания».

Мне нужно расширить их даты для каждого запись, например:

id | date_start | date_end 
1  | 2019-12-01 | 2019-12-05 
2  | 2020-01-01 | 2020-01-06 

результат должен выглядеть так:

id | date_new 
1  | 2019-12-01  
1  | 2019-12-02 
1  | 2019-12-03 
1  | 2019-12-04 
1  | 2019-12-05 
2  | 2020-01-01 
2  | 2020-01-02 
2  | 2020-01-03 
2  | 2020-01-04 
2  | 2020-01-05 

Спасибо

1 Ответ

1 голос
/ 01 мая 2020

Одним из вариантов является рекурсивный запрос:

with recursive cte (id, date_start, date_end) as (
    select id, date_start, date_end from mytable
    union all
    select id, date_start + interval '1 day', date_end from cte where date_start < date_end
)
select id, date_start date_new from cte
...