Объединить строки с одинаковым идентификатором в BigQuery из одной таблицы - PullRequest
0 голосов
/ 31 марта 2019

Я выполняю этот запрос в Google BigQuery

SELECT rep.key.id as id, te.cmnt as comment
FROM `table` rep, UNNEST(tre) as te
WHERE u_id LIKE 'test'
ORDER BY cts DESC

и получаю это

Id                    comment
---------------------------------
5165356444286976      HEloo
5165356444286976      TEST
5165356444286976

Я хочу объединить все комментарии с одинаковым идентификатором, например, чтобы выглядеть так:

Id                    comment
---------------------------------
5165356444286976      HEloo, TEST

1 Ответ

1 голос
/ 31 марта 2019

Использование STRING_AGG():

WITH table AS (
  SELECT 'test' u_id, STRUCT(1 AS id) AS key, [STRUCT('hey' AS cmnt)] AS tre, 3 cts
  UNION ALL 
  SELECT 'test', STRUCT(1), [STRUCT('you')], 2
  UNION ALL 
  SELECT 'test', STRUCT(1), [STRUCT(CAST(null AS STRING))], 1
)


SELECT rep.key.id as id, STRING_AGG(te.cmnt, ', ' ORDER BY cts DESC) AS comments
FROM `table` rep, UNNEST(tre) as te
WHERE u_id LIKE 'test'
GROUP BY id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...