PostgreSQL Generate Series, который отображает скользящий трейлинг 12 месяцев

Я пытаюсь создать серию Generate, которая отображает последние 12 месяцев на основе текущей даты. В настоящее время я просто отображаю текущий месяц 12 раз.

select date_trunc('month',current_date)::date as month
from generate_series(
  date_trunc('month', current_date)::date - interval '11 months',current_date, '1 month')

Любая помощь будет принята с благодарностью.

1 ответ

Ваш выбор отменяет возвращенную серию. Таким образом, все, что вы получите, это 12 экземпляров (количество строк, возвращаемых из серии) date_trunc('month',current_date)::date, который всегда текущий месяц, конечно.

Вы, вероятно, хотите это:

select *
from generate_series(
    date_trunc('month', current_date)::date - interval '11 months',current_date, '1 month')

Или с псевдонимом:

select dMonths
from generate_series(
    date_trunc('month', current_date)::date - interval '11 months',current_date, '1 month') dMonths
Другие вопросы по тегам