在我的工作中,我必须运行一个查询(或者应该说这会使我的生活轻松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上工作,我认为它不支持函数,但是如果函数是我执行此操作的唯一方法,我想我会切换到仅使用命令行。
答案 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
。