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

SQL求和与分组需求:按ITEM和日期计算区间内VALUE总和

源数据表

ITEMDateVALUESTART DATEEND DATE
101 Jan 20231501 Jan 202302 Jan 2023
102 Jan 20232002 Jan 202303 Jan 2023
103 Jan 20232503 Jan 202304 Jan 2023
104 Jan 20234004 Jan 202305 Jan 2023
201 Jan 20233001 Jan 202302 Jan 2023
202 Jan 20232002 Jan 202303 Jan 2023
203 Jan 20231003 Jan 202304 Jan 2023
204 Jan 20234004 Jan 202305 Jan 2023

目标结果表

ITEMDateVALUE_SUM
101 Jan 202335
102 Jan 202345
103 Jan 202365
104 Jan 202340
201 Jan 202350
202 Jan 202330
203 Jan 202350
204 Jan 202340

解决方案(SQL)

通过自连接即可实现需求,逻辑是匹配同ITEM下所有区间包含当前行Date的记录,再聚合求和:

SELECT 
    t1.ITEM,
    t1.Date,
    SUM(t2.VALUE) AS VALUE_SUM
FROM 
    your_table t1
JOIN 
    your_table t2 ON t1.ITEM = t2.ITEM
WHERE 
    t1.Date BETWEEN t2.START_DATE AND t2.END_DATE
GROUP BY 
    t1.ITEM, t1.Date
ORDER BY 
    t1.ITEM, t1.Date;

逻辑说明

  1. 自连接:用t1标记需要计算总和的目标行,t2标记同ITEM下的所有待检查行;
  2. 区间筛选:t1.Date BETWEEN t2.START_DATE AND t2.END_DATE确保目标行日期落在待检查行的区间内;
  3. 分组聚合:按ITEM和Date分组,对符合条件的VALUE求和得到VALUE_SUM。

如果使用支持窗口函数的SQL引擎(如PostgreSQL、BigQuery),也可以用条件求和的窗口写法:

SELECT
    ITEM,
    Date,
    SUM(CASE WHEN Date BETWEEN START_DATE AND END_DATE THEN VALUE ELSE 0 END) OVER (PARTITION BY ITEM) AS VALUE_SUM
FROM your_table
ORDER BY ITEM, Date;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 11:46:05