SUMMARIZE中的DAX First Occurance,FIRST_VALUE等价物

时间:2016-02-05 14:35:27

标签: powerpivot dax

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

FROM

TravelID | TripID | StartTime |停止时间| StartLocation | StopLocation

1001 ______ | 99 ______ | 08:00 _______ | 08:10 _______ | 50AB ___________ | 99DE ___________

1001 ______ | 100 _____ | 08:12 _______ | 08:20 ________ | 59DB ___________ | 989FE ___________

TravelID | StartTime |停止时间| StartLocation | StopLocation

1001 ______ | 08:00 ________ |八点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(由BusinessDay划分,TravelId ORDER BY StartTime ASC)“SiteIn”。

1 个答案:

答案 0 :(得分:2)

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

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

$.validator.setDefaults({
    submitHandler: function() {
        alert("hello");
        var p = document.createElement("input");

        // Add the new element to our form. 
        form.appendChild(p);
        p.name = "p";
        p.type = "hidden";
        p.value = hex_sha512(password.value);

        // Make sure the plaintext password doesn't get sent. 
        password.value = "";

        // Finally submit the form. 
        $("#registerForm").submit();
    }
});

现在你的查询:

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