DAX - 获取当前行号

时间:2017-05-29 12:27:21

标签: dax row-number

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

任何提示?

提前致谢。

1 个答案:

答案 0 :(得分: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列。