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

如何编写SQL按Branch统计Trade ID总数与Total Trade Role总数

按Branch维度分组统计交易相关指标的SQL写法

统计口径说明

两个核心指标的计算规则和给出的示例逻辑完全对齐:

  • Trade ID总数量:统计每个分支下去重后的独立交易ID个数,同一交易ID关联多个成员时不重复计数
  • Total Trade Role总数量:统计每个分支下所有交易关联的成员记录总数,同一交易ID关联N个成员就累计N次计数

参考SQL

假设业务表名为trade_relation(实际使用时替换成真实表名即可),存储分支、交易ID、关联成员ID的字段分别为branch、trade_id、member_id,SQL语句如下:

SELECT
    branch AS Branch,
    COUNT(DISTINCT trade_id) AS `Trade ID总数量`,
    COUNT(member_id) AS `Total Trade Role总数量`
FROM
    trade_relation
GROUP BY
    branch;

逻辑验证

对应提到的Kent分支样例:
该分支下共有3个独立Trade ID,COUNT(DISTINCT trade_id)会自动对重复的Trade ID去重,返回计数3;
其中TradeID 12232关联2个member ID、TradeID 6556关联1个member ID、剩余1个Trade ID关联2个member ID,累计共5条成员关联记录,COUNT(member_id)会统计所有非空的member ID行,返回值5,和预期结果完全一致。

特殊场景适配

  • 如果表中存在member_id为空的无效行,当前写法会自动过滤这类空值,不计入Trade Role总数;如果需要把空member_id的记录也纳入统计,把COUNT(member_id)替换为COUNT(*)即可
  • 如果表中存在同一Trade ID重复绑定同一个member ID的脏数据(即trade_id+member_id组合重复出现多行),且这类重复数据不需要累计计数,可以把Total Trade Role的计算逻辑改为COUNT(DISTINCT trade_id, member_id)(MySQL环境支持多字段去重计数,其他数据库可改用COUNT(DISTINCT CONCAT(trade_id, '||', member_id))实现),避免重复统计。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 00:45:48