Я новичок в BigQuery (3-й день использования без обучения), я просто пытаюсь разобраться во вложенных полях и т. Д.
Я просмотрел следующие ресурсы и использовал пример peopledata по ссылке google bigquery docs.
https://cloud.google.com/bigquery/docs/data
Я хочу выполнить следующий запрос:
select *
from [dataset.tableid]
where fullname = 'John Doe'
Если я запускаю это, я получаю следующую ошибку:
Ошибка: невозможно одновременно вывести несколько независимо повторяющихся полей. Найдено children_age и citiesLived_place
При чтении вышеуказанных статей это невозможно, потому что вам нужно сгладить результаты, которые, насколько я понимаю, просто дублируют все неповторяющиеся переменные, т.е.
Полное имя | возраст | пол | Children.name | children.age
Джон Доу | 22 | Мужской | Джон | 5
Джон Доу | 22 | Мужской | Джейн | 7
В одной из вышеперечисленных статей предполагается, что вы все еще можете использовать операторы where с помощью функции flatten в bigquery:
select fullname,
age,
gender,
citiesLived.place
FROM (FLATTEN([dataset.tableId], children))
WHERE
(citiesLived.yearLived > 1995) AND
(children.age > 3)
GROUP BY fullName, age, gender, citiesLived.place
Если я изменю это на:
select *
FROM (FLATTEN([dataset.tableId], children))
WHERE fullname = 'John Doe'
Тогда это отлично работает и дает мне то, что мне нужно, однако, если я перейду на это:
select *
FROM (FLATTEN([dataset.tableId], citieslived))
WHERE fullname = 'John Doe'
Затем я получаю следующую ошибку:
Ошибка: невозможно одновременно вывести несколько независимо повторяющихся полей. Найдены children_age и городаLived_yearsLived
Может кто-нибудь объяснить, почему это сработает сглаживание на основе «Children», но не «CitiesLived», и как узнать, какие переменные использовать в сглаживании с более сложными наборами данных с несколькими вложенными переменными?
заранее спасибо