gpt4 book ai didi

sql - Google BigQuery - 在 Google BigQuery SQL 中模拟 Pandas removeDuplicates()

转载 作者:行者123 更新时间:2023-12-04 16:11:18 24 4
gpt4 key购买 nike

给定一个包含 col_1....col_m 的 Google BigQuery 数据集,您如何使用 Google BigQuery SQL 返回没有重复项的数据集... [col1, col3, col7] 这样当有行时在 [col1, col3, col7] 中有重复项,那么返回这些重复项中的第一行,其余在这些列中具有重复字段的行都被删除?

例子:removeDuplicates([col1, col3])

    col1 col2 col3
---- ---- ----
r1: 20 25 30
r2: 20 70 30
r3: 40 70 30

返回

  col1 col2 col3
---- ---- ----
r1: 20 25 30
r3: 40 70 30

使用 python pandas 很容易做到这一点。对于数据框(即矩阵),您调用 pandas 函数 removedDuplicates([field1, field2, ...])。但是,在 Google Big Query SQL 的上下文中未指定 removeDuplicates。

关于如何在 Google Big Query 中执行此操作,我最好的猜测是使用 rank() 函数:

https://cloud.google.com/bigquery/query-reference#rank

我正在寻找一个简洁的解决方案(如果存在的话)。

最佳答案

您可以对要从中删除重复项的所有列进行分组,并使用其他列的 FIRST()。也就是说,removeDuplicates([col1, col3]) 将转换为

SELECT col1, FIRST(col2) as col2, col3 
FROM table
GROUP EACH BY col1, col3

请注意,在 BigQuery SQL 中,如果 col1col3 有超过一百万个不同的值,则需要 EACH关键字。

关于sql - Google BigQuery - 在 Google BigQuery SQL 中模拟 Pandas removeDuplicates(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28709186/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com