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

如何在BigQuery中用SQL计算每行多列的唯一值数量

BigQuery SQL实现每行多列唯一值统计

假设现有表格数据如下:

namemathenglishscience
Amy697070
Mike657163
Jay666666

需要新增一列n_unique,统计每行中math、english、science三列的唯一值数量,预期输出如下:

namemathenglishsciencen_unique
Amy6970702
Mike6571633
Jay6666661

基础实现SQL语句

利用BigQuery的数组函数可以快速完成需求:

SELECT
  name,
  math,
  english,
  science,
  ARRAY_LENGTH(ARRAY_DISTINCT([math, english, science])) AS n_unique
FROM
  `your-project.your-dataset.your-table`

语句逻辑说明

  1. [math, english, science]:将当前行的三个科目成绩打包成一个数组
  2. ARRAY_DISTINCT():去除数组中的重复元素
  3. ARRAY_LENGTH():计算去重后数组的长度,即唯一值的数量

处理含NULL值的场景

如果表格中存在NULL值,且需要忽略这些NULL值(不将其计入唯一值统计),可以添加ARRAY_FILTER过滤NULL:

SELECT
  name,
  math,
  english,
  science,
  ARRAY_LENGTH(ARRAY_DISTINCT(ARRAY_FILTER([math, english, science], x -> x IS NOT NULL))) AS n_unique
FROM
  `your-project.your-dataset.your-table`

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 15:45:32