我有两个查询:
Q#1:
SELECT
DISTINCT Col1,
COUNT(Col1) AS COUNT
FROM
`dataset.W01_*`
GROUP BY
Col1
ORDER BY
COUNT DESC
Q#2:
SELECT
DISTINCT Col1,
COUNT(Col1) AS COUNT
FROM
`dataset.W02_*`
GROUP BY
Col1
ORDER BY
COUNT DESC
有结果:
Result1
Row Col1 COUNT
1 12345 33844
2 56789 32161
3 11223 31298
和
Result2
Row Col1 COUNT
1 12345 33944
2 11223 41298
3 67890 12161
我想结合查询以获取以下信息 结果:
Row Col1 COUNT
1 11223 41298
2 12345 33944
3 56789 32161
4 67890 12161
基本上在Result2中:
1)12345的数量比结果1中的数量大:33944 我希望它具有新表中的新计数。
2)Col1 = 67890是新的,我想要它的COUNT 在新表中。
因此,这两个结果将与更新的新行合并, 新计数并按COUNT降序排序。
答案 0 :(得分:3)
以下是用于BigQuery标准SQL
#standardSQL
WITH result1 AS (
SELECT Col1, COUNT(Col1) AS count
FROM `dataset.W01_*`
GROUP BY Col1
), result2 AS (
SELECT Col1, COUNT(Col1) AS count
FROM `dataset.W02_*`
GROUP BY Col1
)
SELECT col1, GREATEST(IFNULL(t1.count, t2.count), IFNULL(t2.count, t1.count)) count
FROM result1 t1
FULL OUTER JOIN result2 t2
USING (col1)
ORDER BY count DESC
另外,请注意:Q1和Q2查询中不需要DISTINCT