2017-05-29 387 views
0

这个问题似乎很简单,但我发现在DAX中很难做到这一点。 我想获取当前上下文数据的当前行号。与T-SQL中的ROW_NUMBER()相同。DAX - 获取当前行号

任何提示?

在此先感谢。

回答

1

没有这样的功能。最近可以得到的是基于排序顺序来计算排名,如:

DEFINE MEASURE SomeTbl[ROW_NO] = SUMX(SomeTbl, RANKX(ALL(SomeTbl), SomeTbl[SortCol])) 
EVALUATE ADDCOLUMNS(SomeTbl, "ROW_NO", SomeTbl[ROW_NO]) 

或者,如果你不能使用RANKX

EVALUATE ADDCOLUMNS (
    SomeTbl, "ROW_NO", COUNTROWS(FILTER(SomeTbl, 
    EARLIER(SomeTbl[SortCol])<=SomeTbl[SortCol]))+0 
) 

注:相同的值(SomeTbl[SortCol])的ROW_NO会是相同的。

如果您使用的是DirectQuery模式,您还可以在模型中添加额外的列并将其定义为SELECT *, ... ROW_NUMBER() as Foo - 并在DAX中使用Foo列。

+0

谢谢Ondrej,感谢您的回答! –