排名函数
下面的列表显示了可在表达式中使用的排名函数。
函数 | 说明 |
---|---|
DenseRank(Arg1, Arg2, Arg3...) | 返回选定列中各个值的整数值排名。第一个参数是要进行排名的列。 可选参数是一个字符串,可决定使用升序排名(默认)还是降序排名。要检索排名 1 以获得最大值,使用参数“desc”;要检索排名 1 以获得最小值,使用“asc”。 相同的排名值不分先后,最大排名编号等于列中唯一值的数量。 列应拆分为单独排名的类别时,可以使用其他列参数(可选)。 示例: DenseRank([Sales]) DenseRank([Sales], "desc", [Region]) 例如,请参见排名。 |
Rank(Arg1, Arg2, Arg3...) | 返回选定列中各个值的整数值排名。第一个参数是要进行排名的列。 可选参数是一个字符串,可决定使用升序排名(默认)还是降序排名。要检索排名 1 以获得最大值,使用参数“desc”;要检索排名 1 以获得最小值,使用“asc”。 排名值不分先后,具体取决于可选参数的值: "ties.method=minimum"(默认), "ties.method=maximum",或者 "ties.method=first"。 有关可用参数的更多信息,请参见关于排名等级的更多信息。 列应拆分为单独排名的类别时,可以使用其他列参数(可选)。 示例: Rank([Sales]) Rank([Sales], "desc", [Region]) Rank([Sales], "ties.method=first") 例如,请参见排名。 |
RankReal(Arg1, Arg2, Arg3...) | 返回选定列中各个值的实数值排名。第一个参数是要进行排名的列。 可选参数是一个字符串,可决定使用升序排名(默认)还是降序排名。要检索排名 1 以获得最大值,使用参数“desc”;要检索排名 1 以获得最小值,使用“asc”。 排名值不分先后,具体取决于可选参数的值: "ties.method=minimum"(默认), "ties.method=maximum", "ties.method=first",或者 "ties.method=average"。 有关可用参数的更多信息,请参见关于排名等级的更多信息。使用斯皮尔曼等级计算数据关系时,将使用平均等级方法。 列应拆分为单独排名的类别时,可以使用其他列参数(可选)。 示例: RankReal([Sales]) RankReal([Sales], "desc", [Region]) RankReal([Sales], "ties.method=average") |
关于排名等级的更多信息:
通过函数 Rank 和 RankReal,可以根据您希望如何对相同值进行排名来添加可选层级方法参数。
参数 | 说明 |
"ties.method=minimum" | 为所有层级提供层级值的最小排名值。 |
"ties.method=maximum" | 为所有层级提供层级值的最大排名值。 |
"ties.method=first" | 为第一个找到的层级值提供最小排名值,并继续对下一个层级使用后续排名值。 |
"ties.method=average" | 为所有层级提供排名值的平均值。 |
示例:
对列表进行排名后,其值排在所有已排序值的第一位。然后,根据已排序列表中的顺序,为已排序的值指定排名值。为层级值指定的排名取决于层级方法。空值保留为空,并且不会获得任何排名。
值列表 | 排名为 "ties.method=minimum" | 排名为 "ties.method=maximum" | 排名为 "ties.method=first" | 排名为 "ties.method=average" |
1 | 1 | 1 | 1 | 1 |
2 | 2 | 3 | 2 | 2.5 |
3 | 4 | 4 | 4 | 4 |
2 | 2 | 3 | 3 | 2.5 |
(空) | (空) | (空) | (空) | (空) |
5 | 5 | 5 | 5 | 5 |
如果使用 DenseRank,示例中的结果排名值将为 1 2 3 4。
另请参见函数。