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

如何在Google BigQuery中去除无向网络表的重复边

BigQuery无向网络边去重方案

针对无向网络中(A,B)与(B,A)视为重复边的场景,可以通过统一边的节点排序标识实现去重,以下是两种可行的BigQuery查询方案:

方案一:保留原始节点顺序的去重

该方案会从每组重复边中选取一条原始记录,保留原有的节点顺序:

WITH processed_edges AS (
  SELECT
    Column_A,
    Column_B,
    Weight,
    -- 生成统一的边标识,让反向边得到相同的节点组合
    LEAST(Column_A, Column_B) AS node1,
    GREATEST(Column_A, Column_B) AS node2
  FROM
    `你的项目ID.你的数据集ID.你的表名`
)
SELECT
  Column_A,
  Column_B,
  Weight
FROM processed_edges
QUALIFY ROW_NUMBER() OVER (PARTITION BY node1, node2 ORDER BY Column_A) = 1;

方案二:标准化节点顺序的去重

该方案会直接将边的节点按字典序排列,生成统一格式的无向边:

SELECT
  LEAST(Column_A, Column_B) AS Column_A,
  GREATEST(Column_A, Column_B) AS Column_B,
  Weight
FROM
  `你的项目ID.你的数据集ID.你的表名`
GROUP BY
  LEAST(Column_A, Column_B),
  GREATEST(Column_A, Column_B),
  Weight;

补充说明

  • 两种方案核心都是利用LEAST()和GREATEST()函数,按字典序统一反向边的节点组合,实现去重判断
  • 如果重复边的Weight值存在差异,可以将Weight替换为聚合函数(比如SUM(Weight))来合并权重,适配不同业务需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 22:22:22