вкладывать несколько столбцов в массив в Big Query - PullRequest
0 голосов
/ 16 сентября 2018

Учитывая эту таблицу BQ BQ Table enter image description here

есть 1,026 строк с 944 уникальными modemio_cat_ids

как я могу вернуть запрос, который вложит все ненулевые столбцы в 1 отдельный массив , называемый "родители" для каждого modemio_cat_id?

пример: для modemio_cat_id = 1111118

nested catx_id into parent

и, наконец, группировка по modemio_cat_id + кумуляция всего массива в случае дубликатов

неправильный подход : этот запрос всегда возвращает одинаковые массивы для каждого modemutti_cat_id:

SELECT modemio_cat_id, ARRAY (
  SELECT AS STRUCT cat1_id, cat2_id FROM `modemutti-8d8a6.categorization.test`
  ) as parent
FROM `modemutti-8d8a6.categorization.test` 
group by modemio_cat_id

1 Ответ

0 голосов
/ 16 сентября 2018

Ниже приведен пример для BigQuery Standard SQL

#standardSQL
SELECT modemio_cat_id, 
  ARRAY_AGG(DISTINCT cat_id IGNORE NULLS) parents
FROM `modemutti-8d8a6.categorization.test`,
  UNNEST([cat1_id, cat2_id, cat3_id, cat4_id, cat5_id, cat6_id]) cat_id
GROUP BY modemio_cat_id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...