我有一些数据,对于每个ID,我想将两个或多个字段聚合到一个数组中,我希望它们在顺序方面匹配.
例如,如果我有以下数据:
我想把它变成这个:
或者,像这样的东西也可以:
首先,如果我使用这样的查询,它会做我想要的,还是不能保证两个字段以相同的顺序通过(即Value_1和Value_2中的相应值可能不匹配)?
SELECT
ID,
ARRAY_AGG (
Value_1
) AS Value_1,
ARRAY_AGG (
Value_2
) AS Value_2
FROM
table
GROUP BY
ID
Run Code Online (Sandbox Code Playgroud)
如果没有,我该怎么做呢?
Ell*_*ard 12
使用ARRAY_AGG与STRUCT如果要配对的值加在一起.例如,
SELECT
ID,
ARRAY_AGG (
STRUCT(Value_1, Value_2)
) AS Values
FROM
table
GROUP BY
ID;
Run Code Online (Sandbox Code Playgroud)
......以及你的问题alternative:
SELECT
id,
ARRAY_AGG(CONCAT('[', Value_1, ',', Value_2, ']')) AS Values
FROM `yourTable`
GROUP BY id
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3474 次 |
| 最近记录: |