Извлечение значений из повторяющихся столбцов в массиве с помощью BigQuery - PullRequest
0 голосов
/ 07 февраля 2020

Каждый массив состоит из информации о том, к какому списку ( internal_list_id ) принадлежит определенный контакт ( vid ).

Я пытаюсь включить все internal_list_id (через запятую) в одном столбце, сгруппированном по vid .

Конечные данные должны выглядеть примерно так:

ContactID | ListMembership:
3291601     1058,1060

пробовал с приведенным ниже кодом, но он возвращает информацию только о первом объекте:

SELECT list_memberships[offset(1)].vid ContactId, list_memberships[offset(1)].internal_list_id ListMembership FROM hs.contacts as c

enter image description here

Приведенные ниже результаты достигаются с помощью:

SELECT list_memberships FROM hs.contacts as c

enter image description here

PS Если у вас есть предложения по улучшению названия, пожалуйста, дайте мне знать. Спасибо!

1 Ответ

0 голосов
/ 12 февраля 2020

Используйте STRING_AGG(x) FROM UNNEST(array), как в:

WITH data AS (
  SELECT visitStartTime, hits[OFFSET(0)].product
  FROM `bigquery-public-data.google_analytics_sample.ga_sessions_20170801` 
  LIMIT 100
)


SELECT visitStartTime, (
  SELECT STRING_AGG(FORMAT('$%i', localProductPrice), ', ') 
  FROM UNNEST(product)
) aggregated
FROM data
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...