数据透视查询雪花中的标识符无效
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
我们有以下格式的数据作为输出;列是日期、同类群组名称,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