BigQuery объединяет список в строку с кавычками - PullRequest
0 голосов
/ 01 мая 2019

Пример таблицы 1:

ID   Color
143  Blue 
213  Black
934  Green
902  Red
894  Orange

Результат, который я ищу, представляет собой строку вроде этой = ('143', '213', '934', '902', '894')

Я начал с "SELECT ID FROM Table1 GROUP BY ID"

Я знаю, что мог бы написать длинную ручную инструкцию, такую ​​как: "'" + SELECT ID FROM Table1 LIMIT 1 + "','"+ SELECT ID FROM Table1 LIMIT 1 OFFSET 1 +"', '"+ ....

Однако моя фактическая таблица имеет длину 100 000+ строк и более 2000 уникальных идентификаторов, поэтому это невозможно.

Ответы [ 2 ]

2 голосов
/ 01 мая 2019
#standardSQL
SELECT STRING_AGG(DISTINCT CONCAT("'", CAST(id AS STRING), "'"))
FROM `project.dataset.table`   

это предполагает, что поле id не является строкой - но если оно уже является строкой - вы можете опустить использование CAST

1 голос
/ 01 мая 2019

Один метод:

SELECT CONCAT("('",
              STRING_AGG(DISTINCT CAST(id AS STRING), "','"),
              "')"
             )
FROM t;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...