数据透视查询雪花中的无效标识符

时间:2019-10-10 17:11:06

标签: pivot snowflake-data-warehouse

我们具有以下格式的数据作为输出;列是日期,同类群组名称和费率。请忽略其余列;

Date         Group_nm        Rate
2019-10-08      A            0.43
2019-10-09      A            0.46
2019-10-08      B             1.5
2019-10-09      B              2

目标是使它以以下格式显示;

Group_nm   2019-10-08   2019-10-09   
  A          0.43          0.46
  B           1.5            2

这是我的尝试;

SELECT * FROM

(SELECT 
date, group_nm, rate
FROM CTE1
)
AS StudentTable
PIVOT(MAX(rate)
FOR date IN ('2019-10-08','2019-10-09')
) AS StudentPivotTable;

但是我遇到一个错误; “无效的标识符率”。请注意,此处不需要汇总,因为数据透视始终要求汇总,因此出于完整性考虑,我们只给出了 MAX()。感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

尝试使用CTE而不是该子选择。我已经使用CTE显式加载您的值,但是您可以在实际CTE中运行从CTE1中选择的内容:

WITH x as ( SELECT $1::date as date_fld, $2 as group_nm, $3 as rate FROM (VALUES ('2019-10-08','A',0.43),('2019-10-09','A',0.46),('2019-10-08','B',1.5),('2019-10-09','B',2) ) ) SELECT * FROM x PIVOT(max(rate) for date_fld in ('2019-10-08'::date,'2019-10-09'::date)) as p;

此外,文档示例也非常有用:https://docs.snowflake.net/manuals/sql-reference/constructs/pivot.html