Генерация серии месяцев в столбце на postgresql

В postgresql, как я могу сгенерировать серию ежемесячных дат в формате "ГГГГ-ММ", причем самым старым из них является месяц создания пользователя до текущего месяца?

2 ответа

Что -то вроде:

select to_char(dt, 'YYYY-MM') 
from generate_series(
     date_trunc('month', (select created_at::date from users where id=1234)),
     now(), 
     '1 month'::interval) dt;

Вы даже можете сделать это на одном уровне запроса:

SELECT to_char(generate_series(created_at::date
                              ,now(), interval '1 mon'), 'YYYY-MM') AS month
FROM   users
WHERE  users_id = 123   -- users_id is unique
Другие вопросы по тегам