Получить последнее значение каждого месяца в Postgresql - PullRequest
0 голосов
/ 12 марта 2019

На моей работе мне нужно выполнить запрос (или я должен сказать, что это сделает мою жизнь в 100 раз проще), который возвращает: - Сумма всех платежей за каждый месяц года. - Окончательный баланс в конце каждого месяца..

Чтобы получить последнее, мне нужно выбрать столбец 'Окончание_баланса' последней записи каждого месяца.Я уже вычислил сумму, поэтому весь запрос будет выглядеть так:

select 
extract(month from request_date):: integer as mon,
extract(year from request_date)::integer as year,
<missing logic here> 
sum(total_amount),
from my_table group by 1,2 order by 2

Я искал ответ по stackoverflow и другим сайтам в течение полдня, и я понял, какполучить значение для ОДНОГО месяца и года через

select payer_id 
from my_table as last_payer 
where extract(month from request_date):: integer = '2' 
and extract(year from request_date)::integer= '2019' 
order by request_date desc limit 1

, но это работает, только если я укажу конкретную дату.Мне нужно что-то, что делает это для каждого месяца и года.Замена жестко закодированных значений на «mon» и «year» не работает.

Я также добавлю, что я работаю над dbeaver, который, я думаю, не поддерживает функции, но если функции - единственный способ, которым я могу сделать это, я думаю, что я переключусь на использование толькокомандная строка.

1 Ответ

0 голосов
/ 26 марта 2019

Этот запрос поможет вам.

Конкретный месяц каждого года.

select * from 
(select 
concat(extract(month from request_date):: integer,
extract(year from request_date)::integer) as dt
from table1) as a
group by dt

просто добавьте sum каждой группы.

...