【发布时间】:2019-07-23 21:35:35
【问题描述】:
我想根据可以包含“动态”值(并不总是事先知道)的字段来透视表。
我可以通过对值进行硬编码来使其工作(这是不可取的):
SELECT *
FROM my_table
pivot(SUM(amount) FOR type_id IN (1,2,3,4,5,20,50,83,141,...));
但我无法使用查询来动态提供值:
SELECT *
FROM my_table
pivot(SUM(amount) FOR type_id IN (SELECT id FROM types));
---
090150 (22000): Single-row subquery returns more than one row.
SELECT *
FROM my_table
pivot(SUM(amount) FOR type_id IN (SELECT ARRAY_AGG(id) FROM types));
---
001038 (22023): SQL compilation error:
Can not convert parameter 'my_table.type_id' of type [NUMBER(38,0)] into expected type [ARRAY]
有没有办法做到这一点?
【问题讨论】:
标签: dynamic pivot snowflake-cloud-data-platform