Как дедуплицировать и модифицировать таблицу Big Query? - PullRequest
1 голос
/ 31 января 2020

У меня есть таблица A , которая выглядит следующим образом:

| origin |   food   |  category  |
----------------------------------
|  tree  |  apple   |    fruit   |
|  plant |  tomato  |    fruit   |
|  plant |  tomato  |  vegetable |
|........|..........|............|
|  plant |  tomato  |  vegetable |

Я хочу go через таблицу и для всех combinations of origin and food, которые появляются более одного раза, чтобы объединить их категории, такие как fruit + vegetable и удалить standalone versions. Таким образом, приведенная выше таблица будет:

| origin |   food   |     category      |
-----------------------------------------
|  tree  |  apple   |    fruit          |
|  plant |  tomato  | fruit + vegetable |
|........|..........|...................|

Я хочу использовать только standardSQL. Есть идеи как?

Спасибо

1 Ответ

3 голосов
/ 31 января 2020

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

with data as (
  select 'tree' as origin, 'apple' as food, 'fruit' as category union all
  select 'plant', 'tomato', 'fruit' union all
  select 'plant', 'tomato', 'vegetable' union all
  select 'plant', 'tomato', 'vegetable'
)
select origin, food, string_agg(distinct category,' + ') as category
from data
group by 1,2

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