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

使用CTE按MASTER_ID分组实现产品计数分列展示的SQL问题

你要的按家庭聚合并输出多产品计数列的需求,用条件聚合+CTE实现逻辑最清晰,也兼容后续新增产品类型的扩展需求,参考实现如下:

WITH FamilyBase AS (
    -- 提取每个家庭首行的基础信息,对应ORGL开头字段
    SELECT 
        MASTER_ID,
        CO_CD AS ORGL_CO_CD,
        PROD_CD AS ORGL_PROD_CD
    FROM ProductMaster
    WHERE ROW_NUM = 1
),
ProductCount AS (
    -- 按家庭分组统计各产品持有数量
    SELECT
        MASTER_ID,
        SUM(CASE WHEN PROD_CD = 'STATIONERY' THEN 1 ELSE 0 END) AS STATIONERY_CT,
        SUM(CASE WHEN PROD_CD = 'PRINTER' THEN 1 ELSE 0 END) AS PRINTER_CT
        -- 新增产品类型只需在此处追加对应SUM(CASE)列即可
    FROM ProductMaster
    GROUP BY MASTER_ID
)
-- 关联基础信息和统计结果得到最终输出
SELECT 
    fb.ORGL_CO_CD,
    fb.ORGL_PROD_CD,
    pc.STATIONERY_CT,
    pc.PRINTER_CT
FROM FamilyBase fb
INNER JOIN ProductCount pc ON fb.MASTER_ID = pc.MASTER_ID

说明:

  • 该写法不需要拆分不同ROW_NUM的关联逻辑,支持任意数量的产品类型扩展
  • 输出结果和你给出的期望结构完全匹配,测试样例运行结果如下:
ORGL_CO_CDORGL_PROD_CDSTATIONERY_CTPRINTER_CT
MAWCSTATIONERY11
MAWCSTATIONERY10

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 23:27:03