WRank - 脚本函数
WRank() 计算加载脚本中表的行,并针对每一行显示加载脚本中计算的字段值的相对位置。当计算表的值时,该函数将结果与包含当前分区的其他行的结果比较,然后返回片段中当前行的排名。
WRank 只能在 Window 函数中使用。Window 函数必须包括排序类型和排序表达式。排序将应用于排序表达式。
语法:
WRank ([mode[, fmt]])
返回数据类型: 双
参数:
参数 | 说明 |
---|---|
mode | (可选)指定函数结果的数字呈现形式。 |
fmt | (可选)指定函数结果的文本呈现形式。 |
TOTAL |
如果表是一维的,或者脚本前面有 TOTAL 限定符,则函数将沿整列求值。如果表格或表格等同物有多个垂直维度,当前分区数据将只包括值与所有维度列的当前行相同的行,但按内部字段排序显示最后维度的列除外。 |
排行以对偶值形式返回,在每一行拥有一个唯一排行的情况下,排行是一个介于 1 和当前分区数据行数之间的整数。
当多行共享同一个排名时,文本和数字呈现形式可使用 mode 和 fmt 参数进行控制。
mode
第一个参数 mode 可获取以下值:
值 | 说明 |
---|---|
0(默认) |
如果共享组中的全部排行处在整个排行中间值的下半部分,全部行都获得共享组的最低排行。 如果共享组中的全部排行处在整个排行中间值的上半部分,全部行都获得共享组的最高排行。 如果共享组中的排行跨越整个排行的中间值,全部行都获得整个分区中最高和最低排行的平均值。 |
1 | 全部行的最低排行。 |
2 | 全部行的平均排行。 |
3 | 全部行的最高排行。 |
4 | 第一行的最低排行,然后每一行都提高一位。 |
fmt
第二个参数 fmt 可获取以下值:
值 | 说明 |
---|---|
0(默认) | 全部行中的低值 - 高值(如 3 - 4)。 |
1 | 全部行的高值。 |
2 | 第一行的低值,以后各行都为空白。 |
mode 4 和 fmt 2 的行顺序由表字段的加载顺序决定。
示例 - 添加已排序字段
示例 - 使用 fmt 添加排名字段以获得一个数位的结果
示例 - 添加具有多个分区的已排名字段
限制
WRank 存在以下限制:
-
如果您的 fmt 值为 0,并且希望将双重结果的文本部分用于 WRank,则必须将 Text() 与 Window(WRank) 一起使用。例如:Text(Window(WRank(0), Unit, 'DESC', Age)) as UnitWRankedByAgeText。