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

PostgreSQL如何关联两张表并计算review_date前12个月的cost总和

PostgreSQL 关联表计算回溯12个月消费总额方案

核心逻辑

  • 以B表的每一条记录为基准,关联同一客户ID的A表消费记录
  • 关联时增加时间范围过滤:消费时间需处于「评审日期往前推12个月」到「评审日期」的左闭右开区间内
  • 按B表的评审日期、客户等级分组后聚合计算消费总额即可

实现SQL

SELECT
    b.review_date,
    b.customer_level,
    SUM(a.cost) AS "12 month cost at review"
FROM
    b
LEFT JOIN a
    ON b.customer_id = a.customer_id
    AND a.receipt_timestamp >= b.review_date - INTERVAL '12 months'
    AND a.receipt_timestamp < b.review_date
GROUP BY
    b.customer_id,
    b.review_date,
    b.customer_level
ORDER BY
    b.review_date;

结果说明

执行上述SQL后输出结果与需求预期完全一致:

review_datecustomer_level12 month cost at review
2018-01-151381.00
2019-01-15045.00
2020-10-151339.00

如果需要处理无消费记录时返回0而非NULL,可将聚合部分改为COALESCE(SUM(a.cost), 0)即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 03:54:06