分析函数
分析函数共五个,用于 orderBy 表达式中。
Rank
为分区中当前行返回标准竞争排名,为相同排名分配相同的值 此函数用于 OrderBy 表达式,使用此函数时,集合{6,9,9,14}按升序排名为{1,2,2,4}。
示例:{Partition [区域] : {OrderBy [销售额] asc : Rank()}}。
另参见 Partition、OrderBy 表达式。
RankPercentile
为分区中当前行返回百分等级 此函数用于 OrderBy 表达式,使用此函数时,集合{6,9,9,14},按升序排名值就是{25,75,75,100}。
示例:{Partition [区域] : {OrderBy [销售额] asc : RankPercentile()}}
RankDense
为分区中当前行返回密集排名,为相同排名分配相同的值,但数字序列中不插入间隔 此函数用于 OrderBy 表达式,使用此函数时,集合{6,9,9,14}按升序排名为{1,2,2,3}。
示例:{Partition [区域] : {OrderBy [销售额] asc : RankDense()}}。
另参见 Partition、OrderBy 表达式。
NTile
将选定分区中的行分布到指定数量的组中 此函数用于 OrderBy 表达式,使用此函数时,如果参数为 3,那么值集{6,9,9,14}将按排序后产生值集{1,2,2,3}。
比如,有一批排序好的学生数据,如想查看哪些学生在前 50% 和后 50% 中,可以将数据分组为两个分片。
示例:{Partition [城市]:{OrderBy [销量] asc : NTile(3)}}就表示先按城市字段进行分组,再将分组后的每个结果集按销量进行排序,再对排序后的每个结果集分三段
RowNumber
为每一行返回唯一的行号 此函数用于 OrderBy 表达式,使用此函数时,值集{6,9,9,14},赋予的行号集合为{1,2,3,4}。
示例:{Partition [城市] : {OrderBy [销量] asc : RowNumber()}}
示例:{OrderBy : RowNumber()} 表示直接为每一行添加行号