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

Invalid identifier in pivot query snowflake

我们有以下格式的数据作为输出;列是日期、同类群组名称,rate.please 忽略其余列;

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;

但是我收到一个错误; "Invalid identifier rate"。请注意,这里不需要聚合,因为 pivot 总是要求聚合,为了完整起见,我们只给出了 MAX()。感谢帮助。

尝试使用 CTE 而不是那个子 select。我已经使用 CTE 显式加载您的值,但您可以 运行 来自 CTE1 的 select 在实际的 CTE 中:

WITH x as ( SELECT ::date as date_fld, as group_nm, 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