【问题标题】:DAX First Occurance in SUMMARIZE, FIRST_VALUE equivalentSUMMARIZE 中的 DAX 首次出现,相当于 FIRST_VALUE
【发布时间】:2016-02-05 14:35:26
【问题描述】:

我正在尝试创建一个 DAX 查询以将多个记录与同一个表结合起来,并从这些结合的记录中提取一些值。 结果不仅应显示开始和停止时间的最小值和最大值,还应显示相应的第一个和最后一个位置。

来自

旅游ID |行程ID |开始时间 |停止时间 |起始位置 |停靠地点

1001______| 99______| 08:00________| 08:10_______ | 50AB_______________| 99DE_______________

1001______| 100_____| 08:12_______| 08:20________|59DB___________| 989FE_______________

旅游ID |开始时间 |停止时间 |起始位置 |停靠地点

1001______| 08:00________| 08:20_______|50AB____________|989FE_________

我目前的努力是:

EVALUATE(
SUMMARIZE(
Source,
Source[BusinessDay]
,Source[TravelID]
,"no of trips in travels", count(Source[TripID])
,"min of starttime",  min(Source[StartTime])
,"max of stoptime", max(Source[StopTime])
,"first startlocation", ???
,"last stoplocation", ???
))

我已经尝试过 FIRSTNONBLANK 和 RANKX,但没有成功。

等效的 SLQ 类似于:FIRST_VALUE(StartLocation) OVER (PARTITION BY BusinessDay, travelId ORDER BY StartTime ASC) "SiteIn"。

【问题讨论】:

    标签: powerpivot dax


    【解决方案1】:

    要以原始帖子的模式创建 DAX 查询,请使用以下命令。请注意,查询(生成表的某些 DAX 表达式)不能用作度量,并且绝大多数 Power Pivot 使用都在需要标量度量的数据透视表中。

    首先采取一些措施让生活更轻松:

    TripCount:=
    COUNT( Source[TripID] )
    
    MinStart:=
    MIN( Source[StartTime] )
    
    MaxStop:=
    MAX( Source[StopTime] )
    
    FirstStartLocation:=
    CALCULATE
        VALUES( Source[StartLocation] )
        ,SAMPLE(
            1
            ,Source
            ,Source[BusinessDay]
            ,ASC
        )
    )
    
    LastStopLocation:=
    CALCULATE
        VALUES( Source[StopLocation] )
        ,SAMPLE(
            1
            ,Source
            ,Source[BusinessDay]
            ,DESC
        )
    )
    

    现在您的查询:

    EVALUATE
    ADDCOLUMNS(
        SUMMARIZE(
            Source
            ,Source[BusinessDay]
            ,Source[TravelID]
        )
        ,"No of trips in travels", [TripCount]
        ,"Min of starttime", [MinStart]
        ,"Max of stoptime", [MaxStop]
        ,"First startlocation", [FirstStartLocation]
        ,"Last stoplocation", [LastStopLocation]
    )
    

    【讨论】:

    • 很好的解决方案。功能完美。谢谢。
    • 您是否有建议也显示 StartLocation 的第 N 个值? (而不是第一个和最后一个)
    • 顺便说一下,我稍微改变了两个度量:FirstStartLocation:= CALCULATE( VALUES( Source[StartLocation] ) ,SAMPLE( 1 ,Source ,Source[StartTime] ,ASC ) ))
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多