我有一个包含2列的BigQuery表:
id|name
1|John
1|Tom
1|Bob
2|Jack
2|Tim
Run Code Online (Sandbox Code Playgroud)
预期输出:按ID分组的连接名称
id|Text
1|John,Tom,Bob
2|Jack,Tim
Run Code Online (Sandbox Code Playgroud)
Mik*_*ant 14
对于BigQuery Standard SQL:
#standardSQL
--WITH yourTable AS (
-- SELECT 1 AS id, 'John' AS name UNION ALL
-- SELECT 1, 'Tom' UNION ALL
-- SELECT 1, 'Bob' UNION ALL
-- SELECT 2, 'Jack' UNION ALL
-- SELECT 2, 'Tim'
--)
SELECT
id,
STRING_AGG(name ORDER BY name) AS Text
FROM yourTable
GROUP BY id
Run Code Online (Sandbox Code Playgroud)
可选ORDER BY name内部STRING_CONCAT允许您输出已排序的名称列表,如下所示
id Text
1 Bob,John,Tom
2 Jack,Tim
Run Code Online (Sandbox Code Playgroud)
对于旧版SQL
#legacySQL
SELECT
id,
GROUP_CONCAT(name) AS Text
FROM yourTable
GROUP BY id
Run Code Online (Sandbox Code Playgroud)
如果您需要在此处输出排序列表,您可以在下面使用(正式 - BigQuery Legacy SQL无法保证获得排序列表 - 但对于大多数实际情况,我有 - 它工作)
#legacySQL
SELECT
id,
GROUP_CONCAT(name) AS Text
FROM (
SELECT id, name
FROM yourTable
ORDER BY name
)
GROUP BY id
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7984 次 |
| 最近记录: |