DAX 在 SUMMARIZE 中首次出现,相当于 FIRST_VALUE

DAX First Occurance in SUMMARIZE, FIRST_VALUE equivalent

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

来自

旅游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".

要按照原始 post 的模式创建 DAX 查询,请使用以下命令。请注意,查询(某些导致 table 的 DAX 表达式)不能用作度量,并且 Power Pivot 的绝大部分使用都在需要标量度量的数据透视 table 中。

首先是一些让生活更轻松的措施:

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]
)