Создание дат начала и окончания

У меня есть таблица ниже

 Createdt    Updatedt    id
 1/1/2019    3/1/2019    1
 1/1/2019    5/1/2019    1
 1/1/2019    7/1/2019    1

Ожидаемые результаты:

Createdt    Start_dt_cycle    End_dt_cycle  id
1/1/2019    1/1/2019          2/28/2019     1 
1/1/2019    3/1/2019          4/30/2019     1
1/1/2019    5/1/2019          06/30/2019    1
1/1/2019    7/1/2019          12/31/9999    1

Мои результаты:

Createdt    Start_dt_cycle    End_dt_cycle  id
1/1/2019    3/1/2019          4/30/2019     1
1/1/2019    5/1/2019          06/30/2019    1
1/1/2019    7/1/2019          12/31/9999    1

Я использовал функцию LEAD, чтобы зафиксировать желаемый end_dt. Я использую updatet для создания циклов, но я действительно хочу, чтобы циклы запускались при создании, а не при первом обновлении.

возможно, я создаю cte и объединяю все разные даты?

Mr John 02.07.2019 19:37
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
1
40
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Кажется, вы хотите union all и lead():

select id, start_dt_cycle,
       lead(start_dt_cycle, 1, date '9999-12-31') over (partition by id order by start_dt_cycle) as end_dt_cycle
from ((select min(createddt) as start_dt_cycle, id
       from t
       group by id
      ) union all
      (select updatedt, id
       from t
      )
     ) t

Другие вопросы по теме