Ошибка Google BigQuery в вопросе Ошибка запроса: предложение ON - PullRequest
0 голосов
/ 20 февраля 2019

Ошибка запроса Query: предложение ON должно быть AND of = сравнения одного имени поля из каждой таблицы со всеми именами полей с префиксом имени таблицы.Подумайте об использовании стандартного SQL .google.com / bigquery / docs / reference / standard-sql /), который допускает неравенство СОЕДИНЕНИЙ и сравнений, включающих выражения и остаточные предикаты.

Удалите последнюю строку, этот SQL отлично работает наSQL везде / ANSI .. Как это исправить?

SELECT b.number, b.state 
FROM [bigquery-public-data:usa_names.usa_1910_2013] as a 
join [bigquery-public-data:usa_names.usa_1910_2013] as b
on a.state = b.state 
and b.state = 'WY'

Ответы [ 2 ]

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

Ограничение, с которым вы сталкиваетесь, относится только к диалекту BigQuery Legacy SQL
Настоятельно рекомендуется Переход на BigQuery Standard SQL"диалект"

Ниже приведено описание BigQuery Standard SQL иработает как положено

#standardSQL
SELECT b.number, b.state 
FROM `bigquery-public-data.usa_names.usa_1910_2013` AS a 
JOIN `bigquery-public-data.usa_names.usa_1910_2013` AS b
ON a.state = b.state 
AND b.state = 'WY'
0 голосов
/ 20 февраля 2019

Вы можете переписать запрос как

SELECT b.number, b.state 
FROM [bigquery-public-data:usa_names.usa_1910_2013] as a 
join 
(select number, state from [bigquery-public-data:usa_names.usa_1910_2013] where state='WY') as b
on a.state = b.state 

, похоже, что все условия предложения on должны иметь хотя бы один столбец из обеих таблиц

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