Как объединить столбец по определенному идентификатору другого столбца? - PullRequest
1 голос
/ 30 апреля 2019

В настоящее время у меня проблема в том, что у меня есть два конкретных столбца в моем экземпляре BigQuery, оба имеют идентификаторы, но один столбец более статичен, чем другой. Набор данных выглядит примерно так:

     ID A          |           ID B
       1                       123
       1                       456
       1                       789
       2                       333
       2                       898
       2                       999
       3                       111
       3                       222
       3                       444

Я не уверен, где на самом деле начать с этой проблемы, так как считаю, что это возможно, но может и не быть.

Я пытаюсь добиться того, чтобы данные возвращались в виде:

     ID A       |       Result
      1             123; 456; 789;
      2             333; 898; 999;
      3             111; 222; 444;

Это результат, который я ищу, где все свернуто по идентификатору A, а удостоверение B свернуто, но отделено знаком ';'. Как я смогу сделать это?

Если понадобятся дальнейшие разъяснения, пожалуйста, дайте мне знать, и я сделаю все возможное, чтобы объяснить дальше.

-Maykid

1 Ответ

2 голосов
/ 30 апреля 2019

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

SELECT id_a, STRING_AGG(DISTINCT id_b, '; ' ORDER BY id_b) result
FROM (
     SELECT 'a' id_a, 'b' id_b UNION ALL SELECT 'a', 'c'
)
GROUP BY id_a

enter image description here

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