Выбор отдельных полей в записи - PullRequest
0 голосов
/ 05 июня 2019

Чтобы выбрать поля записи, я могу сделать следующее:

SELECT application_references FROM `patents-public-data.cpc.definition` 
where symbol='B03'

Однако как мне выбрать поля в структуре, например:

SELECT application_references.description, application_references.target FROM `patents-public-data.cpc.definition` 
where symbol='B03'

Iпопытался использовать стандартную нотацию с точками без отметок, но не смог выбрать эти внутренние поля.Как это будет сделано?

1 Ответ

1 голос
/ 05 июня 2019

Ниже для BigQuery Standard SQL

#standardSQL
SELECT symbol, app_ref.description, app_ref.target 
FROM `patents-public-data.cpc.definition`, 
  UNNEST(application_references) app_ref 
WHERE symbol='A01D'  

application_references - это повторяющаяся запись, поэтому вам необходимо сначала удалить ее, прежде чем ссылаться на отдельные элементы массива.после этого вы можете использовать точечную запись для доступа к элементам структуры

Если вы хотите видеть символы с пустым массивом application_references - вы можете использовать LEFT JOIN, как показано ниже

#standardSQL
SELECT symbol, app_ref.description, app_ref.target 
FROM `patents-public-data.cpc.definition`
LEFT JOIN UNNEST(application_references) app_ref 
WHERE symbol='B03'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...