Альтернатива функции Листагга в bigquery - PullRequest
0 голосов
/ 25 января 2019

Я хотел бы взять следующий набор данных:

Description                ShortDescription           Result
Actions to look for a job  job_search_action          Dont' look actively
Actions to look for a job  job_search_action          Drop off CV's
Actions to look for a job  job_search_action          Job ads
Actions to look for a job  job_search_action          N/A

и получить такой результат:

Description                ShortDescription           Result
Actions to look for a job  job_search_action          Don't look actively, Drop 
                                                      off CV's, Job ads, N/A

Любая помощь, поскольку biquery не имеет функции listagg

Ответы [ 2 ]

0 голосов
/ 25 января 2019
with cte as (select 'Actions to look for a job' as Description,  'job_search_action' as ShortDescription, 'Dont\' look actively' as Result
union all
select 'Actions to look for a job' as Description,  'job_search_action' as ShortDescription, 'Drop off CV\'s' as Result
union all
select 'Actions to look for a job' as Description,  'job_search_action' as ShortDescription, 'Job ads' as Result
union all
select 'Actions to look for a job' as Description,  'job_search_action' as ShortDescription, 'N/A' as Result)

select Description, ShortDescription, string_agg(Result, ', ') from cte
group by 1,2

возвращает:

+-----+---------------------------+-------------------+--------------------------------------------------+--+
| Row |        Description        | ShortDescription  |                       f0_                        |  |
+-----+---------------------------+-------------------+--------------------------------------------------+--+
|  1  | Actions to look for a job | job_search_action | Dont' look actively, Drop off CV's, Job ads, N/A |  |
+-----+---------------------------+-------------------+--------------------------------------------------+--+
0 голосов
/ 25 января 2019

Вы можете использовать STRING_AGG() для csv или ARRAY_AGG(), если вам нужна структура, похожая на список (массив). Затем GROUP BY два других столбца.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...