Колонку дат разобрать по парам записей
Имеем: Таблица Т1 с колонкой дат. Нужно сделать: таблицу T2 с двумя колонками effective_from_date и effective_to_date
Считаем, что даты лежат в Т1 (если ее упорядочить по возрастанию даты нужными парами). Можно ли такую операцию сделать SQL запросом с оконными функциями (без соединения таблицы самой с собой)? Если да, то каким?
Ответы (1 шт):
Автор решения: Sergey
→ Ссылка
with xxx as (
select
t1.*,
case
when mod(t1.rrnn,2) = 1 then t1.effective_date end as eff_from
,
lead((case
when mod(t1.rrnn,2) = 0 then t1.effective_date end),1) over() as eff_to_pr
from
(select
*,
row_number() over(order by effective_date ) as rrnn
from t1)
select id,
eff_from,
eff_to_pr
from xxx where eff_from is not null