Rankx函数是计算排名的函数,返回在当前上下文中生成的值(value)在由指定的表按行生成(行上下文)的数据序列中的排名
简单来说就是:rankx用来计算value在一个数据序列中的排名
其语法如下:
Rankx(table, expression, [value, order, ties])
table: 表表达式
Expression: 标量表达式,该参数是在table中迭代计算的,用来生成排序的数据序列
Value: 标量表达式,将要被排序的值,该参数被省略时,用当前行的expression值代替
order:控制升序还是降序
Ties: 控制是紧凑排序还是稀疏排序
根据以上几个参数,在这里斗胆猜测一下rankx函数的工作原理:
1. rankx迭代table,并计算expression, 生成排序的参考值
2. 在外部上下文中,迭代value并计算value值在数据序列中的排名并返回
这里有会有两个迭代产生:
第一个迭代是生成排序参考值时的迭代,是迭代参数table
第二个迭代是计算参数value的排名是产生的迭代
接下来,通过几个例子来理解一下rankx函数的运行原理