Объединение таблиц с несовместимыми типами - PullRequest
0 голосов
/ 27 февраля 2019

Я пытаюсь объединить две таблицы с помощью этой команды:

SELECT * FROM bigquery-public-data.github_repos.files INNER JOIN bigquery-public-data.github_repos.commits USING (repo_name)

но по обе стороны от соединения есть несовместимые типы: STRING и ARRAY Есть ли способ пройти через это?

Спасибо!

1 Ответ

0 голосов
/ 27 февраля 2019

Вы хотите объединить таблицу с 2 миллиардами строк и таблицу с 200 миллионами строк.Это не будет хорошо, если вы не определите ограничения на то, что вы хотите получить из этого.

Что касается технических проблем этого запроса: ошибка говорит о том, что вы пытаетесь JOIN одно значениес массивом значений.Вам нужно UNNEST() этот массив.

Это будет работать синтаксически:

SELECT *
FROM `bigquery-public-data.github_repos.files` a
INNER JOIN (
  SELECT * EXCEPT(repo_name) 
  FROM `bigquery-public-data.github_repos.commits`
  , UNNEST(repo_name) repo
) b
ON a.repo_name=b.repo

Но если вы пойдете на это, он будет использовать всю вашу бесплатную месячную квоту (1 ТБ отсканированных данных)насколько я могу судить, без какой-либо цели.

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