cgn*_*utt 3 sql analytics pandas google-bigquery
给定一个带有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
Run Code Online (Sandbox Code Playgroud)
回报
col1 col2 col3
---- ---- ----
r1: 20 25 30
r3: 40 70 30
Run Code Online (Sandbox Code Playgroud)
要使用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
Run Code Online (Sandbox Code Playgroud)
需要注意的是BigQuery中的SQL,如果你有超过一百万个不同的值col1
,并col3
,你需要的EACH
关键字.
归档时间: |
|
查看次数: |
1252 次 |
最近记录: |