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

如何为表中每行标记指定列组合是否唯一?含BigQuery方案

通用SQL实现方法

核心思路是利用窗口函数按指定列组合分组,统计每组的行数,通过判断行数是否为1来标记唯一性:

SELECT
  *,
  COUNT(*) OVER (PARTITION BY Fruits, Color) = 1 AS is_unique
FROM
  your_table;
  • PARTITION BY Fruits, Color:将数据按需要校验的列组合分组
  • COUNT(*) OVER (...):计算每组内的总行数
  • 当行数等于1时,说明该列组合唯一,标记为TRUE,否则为FALSE
BigQuery实现方案

BigQuery完全兼容上述通用逻辑,仅需注意表名格式为项目ID.数据集ID.表名,示例代码如下:

SELECT
  Fruits,
  Color,
  Weight,
  COUNT(*) OVER (PARTITION BY Fruits, Color) = 1 AS is_unique
FROM
  `your-project.your-dataset.target-table`;

针对超大规模数据集,BigQuery会自动优化窗口函数的执行效率,无需额外配置。

示例演示

输入表(需校验Fruits, Color列组合唯一性):
| Fruits | Color | Weight |
|--------|--------|--------|
| Apple | Red | 100 |
| Apple | Red | 150 |
| Banana | Yellow | 200 |
| Orange | Orange | 120 |

输出结果:
| Fruits | Color | Weight | is_unique |
|--------|--------|--------|-----------|
| Apple | Red | 100 | FALSE |
| Apple | Red | 150 | FALSE |
| Banana | Yellow | 200 | TRUE |
| Orange | Orange | 120 | TRUE |

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 12:11:03