【发布时间】:2015-04-26 20:47:36
【问题描述】:
给定一个带有 col_1....col_m 的 Google BigQuery 数据集,您如何使用 Google BigQuery SQL 返回在say... [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, ...])。但是,removeDuplicates 并未在 Google Big Query SQL 的上下文中指定。
我对如何在 Google Big Query 中执行此操作的最佳猜测是使用 rank() 函数:
https://cloud.google.com/bigquery/query-reference#rank
如果存在,我正在寻找一个简洁的解决方案。
【问题讨论】:
标签: sql pandas analytics google-bigquery