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

BigQuery如何合并名称相似行 分组统计指定条件记录数

解决方案

你写的SQL有几个明显错误,直接修正即可:

  • 通配符用法错误:BigQuery里%只能和LIKE搭配做模糊匹配,你写test_control="%test%"是在找内容完全等于%test%的行,根本匹配不到test us、test mom这类值。
  • 没有做分组值统一:直接拿原表的test_control字段分组,会把test、test us、test mom分成三个独立组,没法合并到同一个test分类下。
  • 缺少计数聚合:统计符合条件的行数需要用COUNT()函数,你直接查原values字段拿不到计数,加DISTINCT也是多余的,GROUP BY本身就会对分组字段去重。
  • 过滤条件漏了control组:你的WHERE只筛了带test的行,所有control相关的数据都被过滤掉了,自然出不来control的统计值。

可直接运行的正确SQL

先通过CASE WHEN把所有带test/control的行统一归到对应分组,再筛选selected状态、分组计数即可:

SELECT
  CASE
    WHEN test_control LIKE '%test%' THEN 'test'
    WHEN test_control LIKE '%control%' THEN 'control'
  END AS test_control,
  COUNT(1) AS `values`
FROM `total_union`
WHERE values = 'selected'
  AND (test_control LIKE '%test%' OR test_control LIKE '%control%')
GROUP BY 1

说明:按照你提供的样例数据运行上述语句,得到的结果是test组计数1、control组计数3,和你描述的期望数值相反,你可以核对下样例数据或者计数规则是否存在笔误,语句逻辑完全匹配你提出的「按包含test/control归组、仅统计selected记录数」的要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 00:15:51