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

SQL按Item分组后对最早n条日期记录的ForecastQty列求和方法

SQL实现方案

核心逻辑

先对每个Item编号分组,给组内记录按DemandDate升序排序打编号,筛选出每组最早的3条(可调整为任意n条)记录后,再按Item分组对ForecastQty求和即可。

通用SQL语句(兼容MySQL 8.0+、PostgreSQL、SQL Server、Oracle等支持窗口函数的数据库)

SELECT 
    Item,
    SUM(ForecastQty) AS Sum_ForecastQty
FROM (
    -- 子查询:为每个Item下的记录按日期升序分配行号
    SELECT 
        gen.Item,
        gen.ForecastQty,
        ROW_NUMBER() OVER (PARTITION BY gen.Item ORDER BY gen.DemandDate ASC) AS row_num
    FROM reports.v_special_demand_800 gen
) filtered_data
WHERE row_num <= 3 -- 此处数值可替换为你需要的每组取数条数n
GROUP BY Item;

场景适配说明

  • 如果同一个Item存在多条日期完全相同的记录,且你需要把同一天的所有记录都纳入最早3天的统计范围,可以将ROW_NUMBER()替换为DENSE_RANK()
  • 如果需要保留符合条件的明细记录同时展示对应Item的求和结果,可以使用以下语句:
SELECT 
    Item,
    DemandDate,
    ForecastQty,
    SUM(ForecastQty) OVER (PARTITION BY Item) AS Sum_ForecastQty
FROM (
    SELECT 
        gen.Item,
        gen.DemandDate,
        gen.ForecastQty,
        ROW_NUMBER() OVER (PARTITION BY gen.Item ORDER BY gen.DemandDate ASC) AS row_num
    FROM reports.v_special_demand_800 gen
) filtered_data
WHERE row_num <= 3
ORDER BY Item, DemandDate ASC;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 16:24:00