在bigquery中删除重复数据

时间:2017-12-07 19:08:37

标签: sql google-bigquery

对不起,这里有一个新的SQL问题,我有一个包含类似形式的数据的数据库

 U1 Program_Id  A_ID    Date
 x1    A         1       1
 x1    A         2       1
 x1    A         3       1
 x1    B         1       1
 x1    B         2       1
 x1    B         3       1
 x2    B         1       1
 x2    B         2       1

考虑到所有四列,我想复制数据,这样我的最终输出将如下所示

U1  Program_Id  A_ID    Date
x1  A        1       1
x1  A        2       1
x1  A        3       1
x2  B        1       1
x2  B        2       1

X1 A存在且X1 B也存在,对于同一日期,因此这些是需要删除的重复项,只保留X1 A行,X1 B行是在这里重复。

1 个答案:

答案 0 :(得分:1)

以下是BigQuery Standard SQL

#standardSQL
SELECT U1, MIN(Program_Id) Program_Id, A_ID, DATE
FROM `project.dataset.table`
GROUP BY U1, A_ID, DATE

您可以使用问题中的虚拟数据进行上述测试/播放

#standardSQL
WITH `project.dataset.table` AS (
  SELECT 'x1' U1, 'A' Program_Id, 1 A_ID, 1 DATE UNION ALL
  SELECT 'x1', 'A', 2, 1 UNION ALL
  SELECT 'x1', 'A', 3, 1 UNION ALL
  SELECT 'x1', 'B', 1, 1 UNION ALL
  SELECT 'x1', 'B', 2, 1 UNION ALL
  SELECT 'x1', 'B', 3, 1 UNION ALL
  SELECT 'x2', 'B', 1, 1 UNION ALL
  SELECT 'x2', 'B', 2, 1 
)
SELECT U1, MIN(Program_Id) Program_Id, A_ID, DATE
FROM `project.dataset.table`
GROUP BY U1, A_ID, DATE
ORDER BY DATE, U1, A_ID

结果是

U1  Program_Id  A_ID    DATE     
x1  A           1       1    
x1  A           2       1    
x1  A           3       1    
x2  B           1       1    
x2  B           2       1