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

如何使用SQL计算各产品最佳连续4周销售额及对应周区间

问题解决方法

实现思路

  • 按产品分组,在每个产品内部按周升序排序,用滑动窗口计算最近4周(包含当前周)的累计销售额,窗口范围取当前行 + 前3行即可覆盖所有连续4周的组合
  • 对每个产品的所有连续4周组合,按累计销售额降序排序,取排名第一的组合即为最优
  • 周区间直接由当前周-3和当前周拼接得到,不需要额外用min/max聚合

参考SQL代码(支持所有支持标准窗口函数的引擎,如MySQL 8.0+、Spark SQL、Hive、PostgreSQL等)

WITH sliding_sales AS (
    SELECT 
        PRODUCT,
        WEEK AS end_week,
        WEEK - 3 AS start_week,
        SUM(SALES) OVER (
            PARTITION BY PRODUCT 
            ORDER BY WEEK 
            ROWS BETWEEN 3 PRECEDING AND CURRENT ROW
        ) AS total_4w_sale
    FROM 你的表名
)
, ranked_sales AS (
    SELECT 
        PRODUCT,
        CONCAT(start_week, '-', end_week) AS BEST_4_WK,
        total_4w_sale AS BEST_4_WK_SALE,
        ROW_NUMBER() OVER (PARTITION BY PRODUCT ORDER BY total_4w_sale DESC) AS rn
    FROM sliding_sales
    -- 过滤不足4周的无效窗口
    WHERE start_week >= 1
)
SELECT PRODUCT, BEST_4_WK, BEST_4_WK_SALE
FROM ranked_sales
WHERE rn = 1;

结果验证

用你提供的样例数据执行上述代码,输出结果和预期完全一致:

PRODUCT BEST_4_WK   BEST_4_WK_SALE
ICE     1-4            64
WATER   5-8            66
SODA    3-6            63

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

相关产品推荐
方舟 Agent Plan

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

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