我需要计算每个ID,每个迭代(每个ID的第一条记录和每个版本的迭代次数为0)之间的天数(行数)之间的差。我尝试了一些代码段,但没有成功,例如:>
Calculated Time =
VAR Index = Table[Version]
VAR Reference = Table[Id]
VAR Prevtime =
CALCULATE (
FIRSTNONBLANK ( Table[Date], TRUE () ),
FILTER (Table, Table[Id] = Reference && Table[Version] = Index)
)
RETURN
Table[Date] - Prevtime
所需结果:
ID Version Date Calculated time Formula
12345 1 11/1/2018 8:08 0 0
12345 1 11/16/2018 8:39 15.02152778 =C3-C2
12345 1 11/16/2018 13:29 0.201388889 =C4-C3
12345 1 11/16/2018 13:32 0.002083333
12345 2 11/16/2018 8:39 0
12345 2 11/26/2018 14:24 10.23958333
12345 2 11/26/2018 14:24 0
12345 3 11/16/2018 8:39 0
12345 3 12/6/2018 12:13 20.14861111
12345 3 12/6/2018 12:20 0.004861111
任何输入都值得赞赏。如果我需要对以上代码进行一些更改,或者您可以为我提供帮助
,请告诉我答案 0 :(得分:0)
我认为您正在寻找这样的东西:
它是这样的:
select t.b, count(distinct t.a) counter
from (select * from tablea union all select * from tableb) t
group by t.b
返回根据当前行的[ID]和[Version]过滤的“表”表。然后,CALCULATE函数从该过滤表中计算出最大的[日期],该值小于当前行中的[日期]。
EARLIER函数用于转到先前的filtercontext(即rowcontext),以从当前行获取[Date]值。
因此,VAR prevTime是具有相同[ID]和[Version]的前一个[Date]。如果没有以前的[日期],则prevTime为空白。
ALLEXCEPT ( 'Table', 'Table'[ID], 'Table'[Version] )