Как объединить совокупные результаты? - PullRequest
0 голосов
/ 27 апреля 2019

У меня есть два запроса:

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

В основном в результате 2:

1) Счет 12345 больше: 33944, чем в Результате1 и я хочу это с новым счетом в новой таблице.

2) Col1 = 67890 новый, и я хочу его с COUNT в новой таблице.

Итак, два результата должны быть объединены с обновленными новыми строками, новые счета и отсортированные по COUNT в порядке убывания.

1 Ответ

3 голосов
/ 27 апреля 2019

Ниже для BigQuery Standard 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   

Также, обратите внимание: вам не нужно DISTINCT в запросах Q1 и Q2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...