luk*_*s91 0 sql google-bigquery
如果我在 BigQuery 中有以下内容example_table。当我使用“原始查询”查询表时,我得到“实际结果”(从那时起)。有没有办法直接查询 BigQuery 以获得“所需结果”
SELECT ID, SUBID FROM `example_table ORDER BY ID
Run Code Online (Sandbox Code Playgroud)
ID | SUBID
12 abc
12 def
12 ghi
34 jkl
34 mno
56 prg
Run Code Online (Sandbox Code Playgroud)
[{
"ID": "12",
"SUBID": "abc"
}, {
"ID": "12",
"SUBID": "def"
}, {
"ID": "12",
"SUBID": "ghi"
}, {
"ID": "34",
"SUBID": "jkl"
}, {
"ID": "34",
"SUBID": "mno"
}, {
"ID": "56",
"SUBID": "prg"
}]
Run Code Online (Sandbox Code Playgroud)
[{
"ID": "12",
"SUBID": ["abc", "def", "ghi"]
}, {
"ID": "34",
"SUBID": ["jkl", "mno"]
}, {
"ID": "56",
"SUBID": ["prg"]
}]
Run Code Online (Sandbox Code Playgroud)
以下是 BigQuery 标准 SQL
#standardSQL
SELECT ID, ARRAY_AGG(SUBID) SUBID
FROM `project.dataset.example_table`
GROUP BY ID
Run Code Online (Sandbox Code Playgroud)
您可以使用问题中的示例数据来测试、玩上面的内容,如下例所示
#standardSQL
WITH `project.dataset.example_table` AS (
SELECT 12 ID, 'abc' SUBID UNION ALL
SELECT 12, 'def' UNION ALL
SELECT 12, 'ghi' UNION ALL
SELECT 34, 'jkl' UNION ALL
SELECT 34, 'mno' UNION ALL
SELECT 56, 'prg'
)
SELECT ID, ARRAY_AGG(SUBID) SUBID
FROM `project.dataset.example_table`
GROUP BY ID
-- ORDER BY ID
Run Code Online (Sandbox Code Playgroud)
有结果