在循环 BigQuery SQL 查询中使用数组元素

Use array element in looped BigQuery SQL query

我正在寻找一种循环遍历 bigquery 数组并将数组值用作循环内 select 语句中的列名称的方法。以下是我尝试过的示例

declare dimensions array<string>;
set dimensions = ["ad_group", "campaign", "campaign_type"];

for x in (select * from unnest(dimensions) as value)
do 
 SELECT week, x.value as dimension_name, USE ARRAY VALUE HERE AS COLUMN NAME, sum(spend) as spend FROM `table` group by 1,2,3;
end for;

数组中的每个元素都是 table 中的一个列名,我 select 来自并且我似乎无法将数组元素引用为除了它们作为的字符串之外的任何内容反对他们所代表的专栏。这在 BigQuery 中可行吗?

使用以下方法

declare dimensions array<string>;
set dimensions = ["ad_group", "campaign", "campaign_type"];

for x in (select * from unnest(dimensions) as value)
do 
  execute immediate 'select  week, "' || x.value || '" as dimension_name, ' || x.value || ', sum(spend) as spend FROM `your_table` group by 1,2,3';
end for;