Я привык работать с базами данных SQL Server, и теперь мне нужно запрашивать данные из BigQuery.
Как лучше всего запрашивать данные из таблицы?
Если один столбец включает в себя несколько столбцов...
Привет, мне нужна обычная таблица со столбцами USER ID, AGE, Gender.....
Обычно подзапросы используются так:
SELECT
user_id,
user_pseudo_id,
(SELECT value.string_value FROM user_properties WHERE key = "age") AS age,
(SELECT value.string_value FROM user_properties WHERE key = "gender") AS gender,
FROM dataset.table
BigQuery поддерживает unnest()
для превращения элементов массива в строки. Итак, вы можете преобразовать все это в строки как:
select t.user_id, t.user_pseudo_id, up.*
from t cross join
unnest(user_properties) up;
Вам нужно поле для каждого свойства. Есть несколько способов сделать это. Если вам нужно ровно одно значение в строке, вы можете использовать подзапрос и агрегацию:
select t.user_id, t.user_pseudo_id, p.*
from t cross join
(select max(case when up.key = 'age' then up.string_value end) as age,
max(case when up.key = 'gender' then up.string_value end) as gender
from unnest(user_properties) up
) p
В чем именно заключается ваш вопрос? Пожалуйста, приведите фактический пример выборочных данных и желаемых результатов в виде табличного текста.