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

SQL查询需求:统计连续三月Imputed后接Projected的Retailer ID数量

SQL查询:统计符合条件的Retailer ID数量

假设你的数据表名为retailer_fsl_status,包含字段:RetailerID(零售商ID)、record_month(记录月份,需为可排序的格式,比如'2024-01')、FSL_Status(状态字段)。以下是满足需求的查询语句:

WITH status_sequence AS (
    SELECT 
        RetailerID,
        record_month,
        FSL_Status,
        -- 标记连续相同状态的分组
        ROW_NUMBER() OVER (PARTITION BY RetailerID ORDER BY record_month) 
        - ROW_NUMBER() OVER (PARTITION BY RetailerID, FSL_Status ORDER BY record_month) AS status_group,
        -- 获取下一条记录的状态
        LEAD(FSL_Status) OVER (PARTITION BY RetailerID ORDER BY record_month) AS next_status,
        -- 统计当前分组的状态出现次数
        COUNT(*) OVER (PARTITION BY RetailerID, status_group) AS status_count
    FROM retailer_fsl_status
),
valid_imputed_groups AS (
    SELECT DISTINCT RetailerID
    FROM status_sequence
    WHERE 
        FSL_Status = 'Imputed' 
        AND status_count = 3
        -- 检查连续Imputed组的下一个状态是Projected
        AND next_status = 'Projected'
)
SELECT COUNT(DISTINCT RetailerID) AS qualified_retailer_count
FROM valid_imputed_groups;

逻辑说明:

  • status_sequence CTE:通过两个ROW_NUMBER()的差值标记连续相同状态的分组,同时用LEAD()获取下月状态,统计每个分组内的状态出现次数。
  • valid_imputed_groups CTE:筛选出连续3个月为"Imputed"、且后续状态为"Projected"的零售商ID。
  • 最后统计符合条件的唯一零售商ID总数。

注意事项:

  • 确保record_month能按时间正确排序,若使用具体日期字段,可替换为DATE_TRUNC('month', status_date)来统一到月份维度。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 01:19:53