簡體   English   中英

在 BigQuery 中將列轉換為數組

[英]Turn columns into array in BigQuery

我想拿一張這樣的桌子:

鑰匙 col1 col2 col3
“一個” 0 2 3
“乙” 1 1 3
“C” 5 0 2
“d” 0 0 1

並將其變成這樣:

鑰匙 山口
“一個” [0, 2, 3]
“乙” [1, 1, 3]
“C” [5, 0, 2]
“d” [0, 0, 1]

基本上,我想將列合並到一個數組中。 在現實生活中,我有 60 列,全部包含整數。 如果這更容易,我也會采用結構。 基本上,我不想動態處理 60 個列名。

我似乎無法在任何地方找到答案,這讓我感到困惑 - 這一定是一個常見的用例? 對我來說一定很晚了……

使用array怎么樣?

select key, array[col1, col2, col3] as cols
from t;

考慮以下方法

select key, 
  (
    select array_agg(cast(value as int64))
    from unnest(split(trim(format('%t', (select as struct * except(key) from unnest([t]))), '()'))) value
  ) col
from `project.dataset.table` t  

如果應用於您問題中的示例數據 - output 是

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM