Что такое эквивалент набора сбора в BigQuery для стандартного SQL - PullRequest
0 голосов
/ 24 января 2019

У меня есть таблица ниже, где я пытаюсь найти array set для данного id. Я знаю, что collect_set доступен в Hive, но я хочу знать его эквивалент в BigQuery. Я использую Standard SQL.

Вот мой запрос

with temp as (
select "1" as id, "a" as source_field
union all
select "1" as id, "b" as source_field
union all 
select "1" as id, "b" as source_field
)
select id, string_agg(source_field) as op
from temp
group by id 

Это возвращает

id   op
1   a,b,b

тогда как мне нужно

id   op
1   a,b

потому что мне нужны только отдельные члены для данного id

1 Ответ

0 голосов
/ 24 января 2019

Вы должны использовать string_agg(distinct source_field) как в примере ниже

select id, string_agg(distinct source_field) as op
from temp
group by id 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...