Как реплицировать строки, генерируя месяцы в postgres

У меня есть таблица с информацией о клиенте Таблица Клиент:

CID CNAME
1    Abc
2    Def
3    Ghi

я хочу добавить столбец месяца в эту таблицу и реплицировать все строки для каждого месяца в операторе выбора. месяцы должны генерироваться на основе текущей даты.

Предполагаемый результат

Month      CID CNAME
2019-01-01 1    Abc
2019-01-01 2    Def
2019-01-01 3    Ghi
2019-02-01 1    Abc
2019-02-01 2    Def
2019-02-01 3    Ghi
2019-03-01 1    Abc
2019-03-01 2    Def
2019-03-01 3    Ghi
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
0
32
2

Ответы 2

Вы ищете generate_series(). Я бы сделал это как:

select gs.month, t.*
from t cross join
     generate_series('2019-01-01'::date, '2019-03-01'::date, interval '1 month') gs(month)
order by gs.month, t.cid;

чтобы ответить на мой вопрос

  SELECT DATE '2019-01-01' + (interval '1' month * generate_series(0,2)) as "month",
    company_id,
    company_name
    FROM 
    company; 

Вместо использования перекрестного соединения мы можем сделать это встроенным.

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