此SQL窗口函数的PowerBI/DAX查询等价物是什么
我有下表:此SQL窗口函数的PowerBI/DAX查询等价物是什么,powerbi,dax,calculated-columns,window-functions,date-difference,Powerbi,Dax,Calculated Columns,Window Functions,Date Difference,我有下表: NDayNo Customer Date CallID 0 A 02/09/2018 48451 24 A 26/09/2018 48452 0 B 21/09/2018 48453 4 B 25/09/2018 48454 0 C 17/09/2018
NDayNo Customer Date CallID
0 A 02/09/2018 48451
24 A 26/09/2018 48452
0 B 21/09/2018 48453
4 B 25/09/2018 48454
0 C 17/09/2018 48455
8 C 25/09/2018 48456
9 C 26/09/2018 48457
9 C 26/09/2018 48458
0 D 09/09/2018 48459
恩达伊诺。值是在SQL中使用此函数计算出来的:
COALESCE(DATEDIFF(day,FIRST_VALUE(Date) OVER (PARTITION BY Customer ORDER By Date),Date),0)
恩达伊诺计算客户当月第一次联系的时间(=0),然后计算距离下次联系的天数
我试图在PowerBI中复制相同的逻辑。有人知道我如何将其计算为计算列/DAX查询吗?这应该适用于您:
此DAX表达式为每行返回整个表中的最小[date]与该行中的[date]之间的差值(以天为单位)。;DATEDIFF(CALCULATE(MIN('table'[Date],ALLEXCEPT('table','table'[customer]),'table'[Date],DAY)我收到的“传递给DATEDIFF的参数太少,MIN requirement是3”错误。您的屏幕截图上是否有多余的代码?谢谢您忘记了
MIN('table'[Date]之后的结束括号
。我将添加代码,以便可以复制/粘贴。谢谢。如果我想过滤结果,该怎么办?例如,如果它旁边有一个带有值[1]或[0]的标志列,我过滤掉所有的[0],只剩下[1]s。这个计算列会调整NDayNo吗?那么从上表中,如果我要过滤掉最上面的行(CallID.48451),CallID.48452的NDayNo应该调整为0。不,在筛选表时它不会重新计算。这是一个计算列,而不是一个maesure。我明白了,在这种情况下,我该如何将其转换为度量值?确保每次对表应用筛选时都重新计算该值?
NDayNo =
DATEDIFF (
CALCULATE ( MIN ( 'table'[Date] ), ALLEXCEPT ( 'table', 'table'[Customer] ) ),
'table'[Date],
DAY
)