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

如何查找商品连续销售周数及筛选超3周连续销售记录

解决商品连续销售周数筛选问题

嘿Stephanie,这个问题我之前做销售分析的时候也遇到过,用SQL窗口函数就能完美解决!我给你拆解一下思路和具体代码:

核心思路

我们需要先把每个商品的有销售的周记录提取出来,然后识别出其中连续的周段,统计每个连续段的长度,最后筛选出长度超过3周的商品(或者对应的周记录)。

假设数据结构

先假设你的数据表大概是这样的(你可以根据实际表名和字段调整):

  • product_id: 商品ID(比如你的Product 456)
  • week_number: 转换后的周号(比如数值类型的1,2,3... 或者带年份的202401,202402)
  • sales_amount: 销售金额(用来判断该周是否有销售,>0即视为有销售)

分步SQL实现

1. 提取有销售的周记录

首先过滤掉无销售的周,只保留每个商品有销售的周,同时去重(避免同一周多条重复记录):

WITH product_sales_weeks AS (
    SELECT product_id, week_number
    FROM your_sales_table
    WHERE sales_amount > 0
    GROUP BY product_id, week_number
),

2. 识别连续销售的周段

用LAG()窗口函数获取每个商品上一个有销售的周号,通过判断当前周与上一周的差值是否为1,来划分连续的周分组:

continuous_groups AS (
    SELECT 
        product_id,
        week_number,
        -- 生成连续分组ID:如果当前周和上一周不连续,就创建新分组
        SUM(
            CASE WHEN week_number - LAG(week_number) OVER (PARTITION BY product_id ORDER BY week_number) = 1 
                 THEN 0 
                 ELSE 1 
            END
        ) OVER (PARTITION BY product_id ORDER BY week_number) AS group_id
    FROM product_sales_weeks
),

3. 统计每个连续段的周数

对每个商品的每个连续分组,计算包含的周数:

group_week_counts AS (
    SELECT 
        product_id,
        group_id,
        COUNT(*) AS consecutive_weeks
    FROM continuous_groups
    GROUP BY product_id, group_id
)

4. 筛选目标结果

  • 如果只需要连续销售超过3周的商品ID:
SELECT DISTINCT product_id
FROM group_week_counts
WHERE consecutive_weeks > 3;

(按照你的描述,这里应该只会返回Product 456)

  • 如果需要保留这些连续超过3周的具体周记录(排除连续≤3周的记录):
SELECT c.product_id, c.week_number
FROM continuous_groups c
JOIN group_week_counts g 
    ON c.product_id = g.product_id 
    AND c.group_id = g.group_id
WHERE g.consecutive_weeks > 3;

注意事项

  • 如果你的week_number是字符串格式(比如'2024-W01'),需要先转换为数值类型再计算差值,避免字符串运算出错。
  • 如果你的表已经是每个商品每周一条记录(包含无销售的周),可以先添加has_sales标记(比如CASE WHEN sales_amount>0 THEN 1 ELSE 0 END),再按上述逻辑处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:03:42