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