请帮助我构建一个查询,使用在同一列计算的先前值来计算该值。
事情会是这样的:
Select ID
,n
,CASE WHEN n=1 THEN col1 ELSE col1+col3 END AS col2
,LAG(col2) OVER (PARTITION BY ID ORDER BY n) AS col3
from table
Select ID
,n
,CASE WHEN n=1 THEN col1 ELSE col1+col3 END AS col2
,LAG(col2) OVER (PARTITION BY ID ORDER BY n) AS col3
from table
Databricks 返回:
不支持该功能:引用横向列别名
窗口表达式“LAG(teriorAliasReference(col2)) OVER (按 ID 分区,按 n ASC 为空,第一个未指定帧$())”。col2
在派生表中创建 col2 以使其可访问。
select ID, n, col2
,LAG(col2) OVER (PARTITION BY ID ORDER BY n) AS col3
from (
Select ID
,n
,CASE WHEN n=1 THEN col1 ELSE col1+col3 END AS col2
from table
) dt