对不起,这里有一个新的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
行是在这里重复。
答案 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