返回指定表的前 N 行。
语法
TOPN(<N_Value>, <Table>, <OrderBy_Expression>, [<Order>[, <OrderBy_Expression>, [<Order>]]…])
参数
参数 | 定义 |
---|---|
N_Value |
要返回的行数。 返回标量值的任何 DAX 表达式,其中表达式将多次计算(每行/上下文)。 请参阅“备注”,以更好地了解返回的行数何时可能大于 n_value 。 |
Table |
返回从中提取前“n”行的数据表的任何 DAX 表达式。 请参阅“备注”,进一步了解何时返回空表。 |
OrderBy_Expression |
(可选)任何 DAX 表达式,其中结果值用于对表进行排序并计算 table 的每一行。 |
Order |
(可选)一个值,指定如何对 OrderBy_Expression 值进行排序:- 0 (零)或 FALSE 。 按 Order 值的降序排序。 省略 Order 参数时默认值。 - 1 或 TRUE 。
OrderBy 的升序排名。 |
返回值
如果 Table
为 0(零)或更少,则为 N_Value
的前 N 行的表或空表。 行不按任何特定顺序排序。
备注
如果表第 N 行的
Order_By
值中有一个平局,则返回所有绑定行。 因此,在第 N 行有关联时,函数可能返回多于 n 行。如果N_Value为 0(零)或更少,则 TOPN 返回一个空表。
TOPN 不能保证结果的任何排序顺序。
在计算列或行级别安全性 (RLS) 规则中使用时,不支持在 DirectQuery 模式下使用此函数。
示例
以下度量公式按销售金额返回前 10 个销售产品。
= SUMX(
TOPN(
10,
SUMMARIZE(
InternetSales,
InternetSales[ProductKey],
"TotalSales", SUM(InternetSales[SalesAmount])
),
[TotalSales], DESC
),
[TotalSales]
)