如何在窗口函数的窗口列下添加iif条件表达式。我想做的是:
iif(ID>5,(lag(op_hours,0)+lag(op_hours,1)+lag(op_hours,2)+lag(op_hours,3)+lag(op_hours,4)+lag(op_hours,5))/6,toDouble(4455))
。但是,运算式产生器会掷回错误:ID>5处的“列应在聚合/窗口函数中换行”。任何帮助都将不胜感激。
ID>5
vaqhlq811#
如何在Azure数据流窗口转换中添加条件表达式在Windows转换中,不能将列名作为单个实体提供。必须使用聚合函数或Windows函数传递列名我试图重现您的场景,但出现类似错误:
要解决此问题,我执行了以下步骤:
首先,我创建了一个Net Sales列,并将Lag表达式提供给windows转换,以获得确切的值:
Net Sales
它用Lag表达式给出了特定窗口的所有值的输出。
在我创建了一个同名的派生列并将条件语句作为
iif(Id>5,{ Net sales },toDouble(4455))
它正在将Id大于5的Net Sales列值更新为十进制的4455。
输出:
指令集
1条答案
按热度按时间vaqhlq811#
如何在Azure数据流窗口转换中添加条件表达式
在Windows转换中,不能将列名作为单个实体提供。必须使用聚合函数或Windows函数传递列名
我试图重现您的场景,但出现类似错误:
要解决此问题,我执行了以下步骤:
首先,我创建了一个
Net Sales
列,并将Lag表达式提供给windows转换,以获得确切的值:它用Lag表达式给出了特定窗口的所有值的输出。
在我创建了一个同名的派生列并将条件语句作为
它正在将Id大于5的
Net Sales
列值更新为十进制的4455。输出:
指令集