DAX - PARALLELPERIOD()得到前一分钟

时间:2017-12-05 16:45:09

标签: dax ssas-tabular ssas-2016

在DAX中,我想获得前一分钟的价值。

我知道PARALLELPERIOD函数可以在日期和年份执行此操作,但不允许在一分钟内完成此操作。

我可以通过以下方式编写简单的方法:

  

[DateTime] = [DateTime] - (1/24/60)

我是DAX的新手,因此不确定如何在我的过滤条件中对两个" DateTime"进行别名(一个用于计算函数的范围,另一个用于到原始查询中的行)

我知道EARLIER ()功能,但我不明白如何定义订单,作为我的时间列。

修改

我的衡量标准如下:

Total:= SUM('Table'[CountColumn])

我已经开始写一个措施来尝试前一分钟:

PreviousMinuteTotal:= CALCULATE (
    SUM ( 'Table'[CountColumn] ),
    'Table'[DateTime]
            = 'Table'[DateTime]  - ( 1 / 24 / 60 ) )

显然这是一个矛盾,因为日期本身不能与前一个值相等,所以我试图弄清楚如何在计算中添加一个过滤器,以便回溯一分钟。

1 个答案:

答案 0 :(得分:0)

尝试这样的事情:

PreviousMinuteTotal = 
    VAR PreviousMinute = MAX('Table'[DateTime]) - TIME(0,1,0)
    RETURN CALCULATE(SUM('Table'[CountColumn]), 'Table'[DateTime] = PreviousMinute)

我有一点麻烦(由于四舍五入?)使用这个,所以你可能需要尝试使用它来代替返回线。 (我添加了第二个摆动空间。)

RETURN CALCULATE(SUM('Table'[CountColumn]),
           'Table'[DateTime] > PreviousMinute - TIME(0,0,1),
           'Table'[DateTime] < PreviousMinute + TIME(0,0,1))