TOPN 函数 (DAX)
返回指定表的前 N 行。
语法
TOPN(<n_value>, <table>, <orderBy_expression>, [<order>[, <orderBy_expression>, [<order>]]…])
参数
n_value
要返回的行数。 它是任何返回单个标量值的 DAX 表达式,其中,表达式将计算多次(针对每行/上下文)。请参阅备注部分,以了解返回的行数何时可能大于 n_value。
请参阅备注部分,以了解何时返回一个空表。
table
返回从中提取前“n”行的数据表的任何 DAX 表达式。orderBy_expression
结果值用于对表进行排序并且针对 table 的每行进行计算的任何 DAX 表达式。order
(可选)一个值,指定如何对 orderBy_expression 值排序(按升序或降序):值
备选值
说明
0(零)
FALSE
按降序对 order_by 的值排序。
当忽略 order 参数时,这是默认值。
1
TRUE
按 order_by 的升序排名。
返回值
具有 table 的前 N 行的表;或者,如果 n_value 为 0(零)或更低,则为空表。 行不一定按任何特定顺序排序。
注释
如果在表的第 N 行的 order_by 值中存在等同值,则返回所有具有等同值的行。 然后,当在第 N 行具有等同值时,函数可能返回多于 n 行。
如果 n_value 为 0(零)或更低,则 TOPN 将返回一个空表。
TOPN 不保证结果按任何顺序排序。
示例
下面的示例创建一个度量值以及销量居于前 10 位的产品的销售额。
=SUMX(TOPN(10, SUMMARIZE(Product, [ProductKey], “TotalSales”, SUMX(RELATED(InternetSales_USD[SalesAmount_USD]), InternetSales_USD[SalesAmount_USD]) + SUMX(RELATED(ResellerSales_USD[SalesAmount_USD]), ResellerSales_USD[SalesAmount_USD]))