PostgreSQL中使用窗口sum()

目的,在编写sql脚本中,希望获取销售组织每个月的销售数量,和截止该月的累积销售数据
刚开始写的逻辑如下:

select calmonth,level1,level2,
sum(amount) as amount
sum(amount) over (PARTITION BY level1,level2 ORDER BY calmonth ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) as acc_amount
from B
where level2 in ('东北运营中心','华南运营中心')
group by calmonth,level1,level2

这个会爆以下问题:

SQL 错误 [42601]: ERROR: syntax error at or near “sum”¶ Position: 1796

最终发现原来是在使用窗口函数的使用,sum(amount) 代表的是一个分组字段,需要在sum一遍
修改后的逻辑如下:

select calmonth,level1,level2,
sum(amount) as amount
sum(sum(amount)) over (PARTITION BY level1,level2 ORDER BY calmonth ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) as acc_amount
from B
where level2 in ('东北运营中心','华南运营中心')
group by calmonth,level1,level2
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PostgreSQL支持各种高级查询和优化技术,以下是一些常见的高级查询: 1. 聚合函数(Aggregate Functions):PostgreSQL支持各种聚合函数,例如SUM、AVG、COUNT、MAX、MIN等等。聚合函数可以对查询结果进行汇总和统计,例如计算平均值、总和、个数等等。 2. 窗口函数(Window Functions):PostgreSQL支持窗口函数,它可以在查询结果上进行分组、排序、排名等操作,例如ROW_NUMBER、RANK、DENSE_RANK、NTILE等等。 3. 子查询(Subqueries):PostgreSQL支持子查询,它可以在查询语句嵌套另一个查询语句,用于过滤和限制结果集。 4. 连接查询(Join):PostgreSQL支持各种连接查询,例如INNER JOIN、OUTER JOIN、LEFT JOIN、RIGHT JOIN等等。连接查询可以将多个表的数据进行关联,生成更复杂的查询结果。 5. 全文搜索(Full Text Search):PostgreSQL提供了全文索引和全文搜索功能,可以快速地在文本数据搜索关键字或短语。全文搜索支持多种语言和多种搜索方式,可以方便地应用于文档管理、知识库、搜索引擎等场景。 6. 高级过滤(Advanced Filters):PostgreSQL支持各种高级过滤条件,例如DISTINCT、GROUP BY、HAVING、UNION、INTERSECT、EXCEPT等等。这些过滤条件可以对查询结果进行筛选、分组、排序、合并等操作,提高查询的灵活性和可用性。 除了以上查询,PostgreSQL还支持各种优化技术,例如索引、查询计划、分区、统计信息等等。这些技术可以提高查询的性能和效率,优化数据库的设计和使用

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值