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

基于FlowType规则按Belong分组统计Target关联计数的SQL实现

问题描述

我的数据表:

IDTargetBelongFlowType
1131
2313
3131

需按Belong分组统计有效关联计数,规则如下:

  • FlowType = 1:关联记录,计数+1
  • FlowType = 3:退回记录,计数-1
  • 仅保留最终计数大于0的分组

示例说明

  1. 原数据表总有效计数为1(2条关联记录 - 1条退回记录);若移除ID=3的记录,总有效计数为0(1条关联记录 - 1条退回记录)。
  2. 新增以下记录后:
IDTargetBelongFlowType
5161

总有效计数为2(3条关联记录 - 1条退回记录),按Belong分组的期望结果为:

BelongCount
31
61

SQL框架补全方案

符合你提供的框架的写法

select
    s.Belong,
    (select sum(case 
        when s1.FlowType = 1 then 1 
        when s1.FlowType = 3 then -1 
        else 0 
    end) from MyTable s1 where s1.Belong = s.Belong) as Count
from MyTable s
group by s.Belong
having Count > 0;

更简洁的优化写法

select
    Belong,
    sum(case FlowType 
        when 1 then 1 
        when 3 then -1 
        else 0 
    end) as Count
from MyTable
group by Belong
having Count > 0;

逻辑说明

两段SQL均会按Belong分组,计算每组内关联记录数减去退回记录数的结果,再通过having子句过滤掉计数≤0的分组,最终得到你期望的统计结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 15:15:26