首页 > 解决方案 > 使用多行数据透视 BigQuery 表

问题描述

为了旋转我的大查询表,我找到了这段代码

SELECT 'SELECT id, ' || 
   STRING_AGG(
      'MAX(IF(key = "' || key || '", value, NULL)) as `' || key || '`'
   ) 
   || ' FROM `project.dataset.table` GROUP BY id ORDER BY id'
FROM (
  SELECT key 
  FROM `project.dataset.table`
  GROUP BY key
  ORDER BY key

但即使我应用EXECUTE IMMEDIATE函数,它也会返回上面代码的字符串。我在那个功能中错过了什么?

谢谢你的帮助

标签: google-bigquerypivotbigquery-udf

解决方案


下面使用

EXECUTE IMMEDIATE(
SELECT 'SELECT id, ' || 
   STRING_AGG(
      'MAX(IF(key = "' || key || '", value, NULL)) as `' || key || '`'
   ) 
   || ' FROM `project.dataset.table` GROUP BY id ORDER BY id'
FROM (
  SELECT key 
  FROM `project.dataset.table`
  GROUP BY key
  ORDER BY key
)  
);

推荐阅读