RANKX
返回 table
参数中每一行的数字列表中的数字的排名。
语法
RANKX(<table>, <expression>[, <value>[, <order>[, <ties>]]])
parameters
table
返回计算表达式的数据表的任何 DAX 表达式。
expression
返回单个标量 value的任何 DAX 表达式。 表达式针对 table
的每一行进行计算,以 generateall 可能的排名 values。 请参阅备注部分,了解 expression
计算结果为 BLANK时的函数行为。
value
(可选)返回要找到 rank 的单个标量 value 的任何 DAX 表达式。 请参阅备注部分,了解在表达式中找到 value
时 not 函数的行为。
省略 value
参数时,将改用当前行中的表达式 value。
order
(可选)指定如何 rankvalue
、低到高 or 高到低的 value:
value | 备用 value | 说明 |
---|---|---|
0(零) | FALSE |
按表达式 values 降序排名。
If
value 等于表达式中的最高数字,然后 RANKX 返回 1。 这是省略 order 参数时的默认 value。 |
1 | TRUE |
表达式按升序进行排名。 If value 等于表达式中最低的数字,然后 RANKX 返回 1。 |
ties
(可选)一个枚举,用于定义在有联系时如何确定排名。
枚举 | 说明 |
---|---|
Skip |
next
rank
value在平局后,是平局的 rankvalue 加上 values的 count。 例如,if 五(5)values 与 11 的 rank 绑定,nextvalue 将收到 16 (11 + 5) 的 rank。 省略 ties 参数时,这是默认 value。 |
Dense |
平局后 nextrankvalue是 nextrankvalue。 例如,if 五(5)个 values 与 11 的 rank 绑定,nextvalue 将收到 12 个 rank。 |
返回 value
rank
table
all 行计算的 expression
valuesallvalue
数。
备注
If
expression
orvalue
计算结果为 BLANKall 表达式的计算结果为 0(零),orall 文本表达式的空文本。If
value
在expression
all 可能的 values 中 not,然后 RANKX 暂时将value
values 添加到expression
and 重新评估 RANKXRANKX,以确定value
的正确 rank。通过将空的逗号(,)置于参数列表中(如
RANKX(Inventory, [InventoryCost],,,"Dense")
),可以跳过可选参数。values 与 十进制数 数据类型之间的相等 related 比较(
=
、<
、>
、>=
and<=
)可能会在使用 RANKX 函数时返回意外结果。 由于 十进制数 数据类型 values 存储为 IEEE 标准 754 浮点数,and 其精度具有固有限制,因此可能会出现不正确的结果。 为了避免意外的结果,请将数据类型更改为 Fixed 十进制数,or 使用 ROUND执行强制舍入。在计算列 or 行级别安全性 (RLS) 规则中使用时,not 支持在 DirectQuery 模式下使用此函数。
示例
“产品”表中的以下计算列计算 Internet 频道中每个 product 的销售排名。
= RANKX(ALL(Products), SUMX(RELATEDTABLE(InternetSales), [SalesAmount]))