是否有一種簡潔的方法可以按陣列分組并在 BigQuery 中的其他列之間進行聚合,同時保持陣列結構?
我有這張桌子

我想要下面的結果

我意識到我可以 GROUP BYid然后array_to_string(product,',')SUM over val,但我想將陣列結構保留在product列中。
我試過了
select id, product, sum(val) as val
from my_table
group by id, product
但似乎陣列不能在 GROUP BY 中使用。
這似乎也不起作用
select id, array(select val from unnest(split(array_to_string(product,','))) val) as product, sum(val) as val
from my_table
group by id, array_to_string(product,',')
select 陳述句中的thearray_to_string(product,',')不被識別為分組/聚合
uj5u.com熱心網友回復:
您可以考慮以下方法。
WITH sample_data AS (
SELECT 2 id, [3] product, 5 val UNION ALL
SELECT 11, [1, 2], 35 UNION ALL
SELECT 11, [1, 2], 8 UNION ALL
SELECT 11, [1], 40
)
SELECT ANY_VALUE(STRUCT(id, product)).*, SUM(val) AS val
FROM sample_data
GROUP BY FORMAT('%t', (id, product));
查詢結果

轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/533259.html
標籤:Google Cloud Collective sql通过...分组谷歌大查询
下一篇:如何回傳具有沖突值的行的ID?
