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

如何在BigQuery中删除重复行,仅保留唯一数据行?

BigQuery 移除重复行保留单行的解决方案

针对所有字段完全重复的数据行,以下是两种实用的处理方法:

方法一:使用 DISTINCT 直接去重(最简场景)

如果仅需保留唯一的一行重复数据,直接用 DISTINCT 关键字筛选所有唯一记录,覆盖原表或生成新表:

CREATE OR REPLACE TABLE `你的项目ID.你的数据集名称.你的表名`
AS
SELECT DISTINCT Empno, empname, salary
FROM `你的项目ID.你的数据集名称.你的表名`;

替换语句中的表路径为你的实际BQ表地址即可,执行后原表将仅保留一行1,Sam,1000。

方法二:使用窗口函数(灵活扩展场景)

如果后续需要按特定规则保留重复行(比如保留最新插入的行,若表有时间戳字段),可以用ROW_NUMBER()窗口函数标记重复行,再筛选第一行:

CREATE OR REPLACE TABLE `你的项目ID.你的数据集名称.你的表名`
AS
WITH ranked_data AS (
  SELECT 
    *,
    ROW_NUMBER() OVER (PARTITION BY Empno, empname, salary ORDER BY NULL) AS rn
  FROM `你的项目ID.你的数据集名称.你的表名`
)
SELECT Empno, empname, salary
FROM ranked_data
WHERE rn = 1;

PARTITION BY后的字段是判断重复的依据(所有字段完全一致就全列写上),ORDER BY NULL表示无需特定排序规则,随机保留一行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 14:10:41