You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL按类型和周多列分组计算累计求和问题

正确的按类型分组累计求和方法

原查询的问题在于窗口函数未按type进行分区,导致计算的是全局累计值而非单个类型的累计。要实现每个类型按周的累计求和,需要在窗口函数中添加PARTITION BY type子句,确保累计范围限定在同一类型内。

正确查询语句

SELECT 
    week, 
    type, 
    cnt,
    SUM(cnt) OVER (PARTITION BY type ORDER BY week) AS running_total
FROM (
    SELECT 
        week, 
        type, 
        COUNT(*) AS cnt 
    FROM customer 
    GROUP BY week, type
) t 
ORDER BY week, type;

预期结果

weektypecntrunning_total
2022-01A11
2022-01B11
2022-02A12
2022-02B23

说明

  • PARTITION BY type:将数据按类型分组,每个类型单独计算累计值
  • ORDER BY week:确保累计是按时间顺序从最早的周开始计算
  • 子查询先统计每周每个类型的记录数,外层查询基于这个结果计算累计

内容的提问来源于stack exchange,提问作者Amzar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 03:21:02