BigQuery - объединяет несколько строк и столбцов в одну строку - PullRequest
0 голосов
/ 13 марта 2020

У меня есть такой столбец

id|name | Country
1|John | usa
1|Tom  | Canada
1|Bob  | Italy
2|Jack | China
2|Tim  | USA

Мне нужен вывод как

id|Text
1| John USA , Tom Canada , Bob Italy  
2|Jack China, Tim USA

1 Ответ

2 голосов
/ 13 марта 2020

Ниже для BigQuery Standard SQL

#standardSQL
SELECT id, STRING_AGG(CONCAT(name, ' ' , country)) text 
FROM `project.dataset.table`
GROUP BY id   

Вы можете протестировать, поиграть с выше, используя примеры данных из вашего вопроса, как в примере ниже

#standardSQL
WITH `project.dataset.table` AS (
  SELECT 1 id, 'John' name, 'Usa' country UNION ALL
  SELECT 1, 'Tom', 'Canada' UNION ALL
  SELECT 1, 'Bob', 'Italy' UNION ALL
  SELECT 2, 'Jack', 'China' UNION ALL
  SELECT 2, 'Tim', 'USA' 
)
SELECT id, STRING_AGG(CONCAT(name, ' ' , country)) text 
FROM `project.dataset.table`
GROUP BY id   

с выводом

Row id  text     
1   1   John Usa,Tom Canada,Bob Italy    
2   2   Jack China,Tim USA   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...