获取Postgresql中每个月的最后一个值

时间:2019-03-12 12:27:43

标签: postgresql postgresql-9.3

在我的工作中,我必须运行一个查询(或者应该说这会使我的生活轻松100倍),然后返回 -一年中每个月的所有付款之和 -每个月末的最终余额。

要获取后者,我需要选择每月最后一条记录的“ ending_balance”列。我已经计算出总和,所以整个查询看起来像这样

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 :(得分:0)

此查询将为您提供帮助。

每年的特定月份。

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