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

T-SQL聚合统计需求:合并指定数据源的交易计数

问题:合并指定数据源ID的交易计数统计

我需要统计各数据提供商的交易数量,要求将数据源ID为x、y、z的交易计数合并为一行,其余数据源单独显示各自的交易计数。但当前执行的T-SQL语句返回的是每个数据源单独一行的结果。我尝试了以下语句,期望当数据源ID为x、y、z时将计数合并到x对应的行,否则显示自身计数:

SELECT
    CASE
        WHEN C.Datasourceid IN (x, y, z) THEN x
        ELSE C.Datasourceid
    END AS DatasoureID,
    CASE
        WHEN D.DatasourceName IN ('Mips', 'Yips', 'Zips') THEN 'Mips'
        ELSE D.DatasourceName
    END AS DatasourceName,  
    COUNT(*) AS Transactions
FROM
    ClaimView C, DatasourceView D


    AND C.ReportDate BETWEEN '07/01/2023' AND '6/30/2024'
DatasourceActiveIndicator = 'Y' 

GROUP BY
    C.Datasourceid, DatasourceName
ORDER BY
    COUNT(*) DESC

当前未合并的结果

每个数据源ID(包括x、y、z)各自单独一行展示交易计数,例如:

  • x:100笔
  • y:200笔
  • z:150笔
  • 其他数据源(如A、B)分别显示对应计数

期望的合并后结果

将x、y、z的交易计数合并为一行,以x作为数据源ID,名称显示为'Mips',计数为三者之和;其余数据源保持单独显示:

  • x(Mips):450笔(100+200+150)
  • A:300笔
  • B:250笔

修正后的T-SQL语句

SELECT
    CASE
        WHEN C.Datasourceid IN (x, y, z) THEN x
        ELSE C.Datasourceid
    END AS DatasourceID,
    CASE
        WHEN D.DatasourceName IN ('Mips', 'Yips', 'Zips') THEN 'Mips'
        ELSE D.DatasourceName
    END AS DatasourceName,  
    COUNT(*) AS Transactions
FROM
    ClaimView C
INNER JOIN DatasourceView D ON C.Datasourceid = D.Datasourceid
WHERE
    C.ReportDate BETWEEN '2023-07-01' AND '2024-06-30'
    AND D.DatasourceActiveIndicator = 'Y'
GROUP BY
    CASE
        WHEN C.Datasourceid IN (x, y, z) THEN x
        ELSE C.Datasourceid
    END,
    CASE
        WHEN D.DatasourceName IN ('Mips', 'Yips', 'Zips') THEN 'Mips'
        ELSE D.DatasourceName
    END
ORDER BY
    Transactions DESC

核心修正说明

  1. 表连接规范:把逗号连接改为INNER JOIN并补充连接条件C.Datasourceid = D.Datasourceid,避免产生笛卡尔积导致统计错误
  2. 分组匹配:GROUP BY必须和SELECT中的CASE表达式完全一致,不能按原始的数据源ID和名称分组,否则x、y、z仍会被单独统计
  3. 条件优化:补充WHERE关键字,给字段添加表前缀避免歧义;使用ISO标准日期格式YYYY-MM-DD,提升SQL兼容性
  4. 排序简化:直接用Transactions别名排序,代码更清晰易读

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 11:57:10