У меня есть таблица ниже, которая содержит ок.100 000 строк и каждый идентификатор должен быть обновлен.
Орг. Таблица A
id start_dt end_dt cust_start_dt cust_end_dt
1 8/1/2008 9/12/2019 8/7/2008 9/12/2019
1 9/17/2019 9/20/2019 9/17/2019 12/31/9999
1 9/21/2019 12/31/9999 9/17/2019 12/31/9999
Таблица A должна выглядеть следующим образом ...
id start_dt end_dt cust_start_dt cust_end_dt
1 8/1/2008 9/16/2019 9/17/2019 12/31/9999
1 9/17/2019 9/20/2019 9/17/2019 12/31/9999
1 9/21/2019 12/31/9999 9/17/2019 12/31/9999
sql
select
id
start_dt,
case
when lead(start_dt) over (partition by id order by start_dt) - end_dt > 1 then lead(start_dt) over (partition by id order by start_dt) - 1
else end_dt
end end_dt,
first_value(start_dt) over (partition by id order by start_dt) as cust_start_dt,
first_value(end_dt) over (partition by id order by start_dt desc) as cust_end_dt
from a
Как мне тогдавозьмите приведенный выше запрос и обновите таблицу A?