历史版本9 :RANK_AGG-按指定规则排序 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本

FineBI版本
功能变动
6.1.2-

1.2 函数简介

语法RANK_AGG([分组字段1,分组字段2], [排序字段1,"排序方式",排序字段2,"排序方式"], "排序模式")  


按照指定规则进行排序


参数1分组字段排序计算依据的分组字段,明细级别,可以缺省,缺省则不按照任何字段分组
参数2排序字段排序计算顺序的依据字段,明细级别,可以缺省,缺省则按照默认顺序计算
参数3排序方式

支持 "asc"、"desc" 两个关键词,分别对应升序和降序排序,如缺省需要缺省所有排序方式,缺省则按照排序字段升序进行计算。

参数4排序模式

指定排序规则,共支持4种,可以缺省,缺省默认为一般排

一般排序:COMMON:1、2、2、4 

密集排序: DENSE:1、2、2、3 

连续排序: UNIQUE:1、2、3、4 

比例排序: PERCENTILE:0、0.33、0.33、1

1.3 释义

排序规则有 4 种:

一般排序(COMMON):

    • 定义:这是最常见的排序方法,每个数据点按其在排序中的位置赋值。如果有重复的值,它们共享相同的排序值,后续的排序值会跳过。

    • 场景:适用于基本统计分析,特别是想要直接反映数据在集合中的排名情况。当你需要识别每个数据点在数据集中的具体排名,且关注每个重复值的相同重要性时使用。例如,在考试排名中,如果两位学生分数相同,他们可以共享相同的排名,且后面的名次会跳过,显示两个学生有相同的表现。

    • 示例:对于数据 23、45、45、76,排序值是 1、2、2、4。这里的 1 是第一个最小的值,2是第二个值,4是最大的值的位置。

密集排序(DENSE):

    • 定义:和一般排序类似,但即使数据值重复,排序值也不会跳跃。重复值共享同一排序值,下一个非重复值紧接着获得下一个排序值。

    • 场景:适用于数据分析中保持数据的连续性,但不希望由于重复值而跳过排序值。这种排序可以用于想要简洁和连续的排名情况,例如运动比赛排名,当需要连续显示名次,而不是跳过位置。

    • 示例:对于数据 23、45、45、76,排序值是 1、2、2、323 赋值 145赋值 2,而 76赋值 3。注意这里没有跳过 3,即使 45是重复数据。

连续排序(UNIQUE):

    • 定义:每个值都被赋予唯一的排序值,确保数据不会出现重复排名,即使有重复的值也会继续增加排序值。

    • 场景:适用于需要确保数据中的每个值有唯一的排序,不允许重复值的排名系统。例如在某些分析中,所有的项目都必须具有独特的排名,或者在去重分析场景中,这种排序方法可以避免数据混乱。例如,在金融投资回报率分析中,每个投资方案都应获得唯一的排名,即使两个方案回报率相同,系统也会给予它们不同的排名。

    • 示例:对于数据 23、45、45、76,排序值是 1、2、3、4。每个唯一值都被赋予一个唯一的排序值,从 1 开始逐渐增加。

比例排序(PERCNTILE):

    • 定义:将数据按其在整个数据集中所占的百分比位置分配排序值,生成0到1之间的比例值,表示该数据在集合中的相对位置。

    • 场景:适用于需要将数据标准化或归一化,从而对数据分布进行评估。这在统计分析中非常常见,特别是在描述数据的相对位置时,例如判断数据值处于何种百分位数。这种排序在大数据分析统计分布分析、以及社会科学研究中广泛使用。

    • 示例:对于数据 23、45、45、76,排序值是 0、0.33、0.33、1。这意味着 23 排名在最下端(0%),45 排名在中间(33%),而 76 排名在最高端(100%)。


如果我们对班级学生的分数进行排序,不同排序模式下排序结果如下图所示:

  • 一般排序:RANK_AGG([],[SUM_AGG(分数),"desc"],"COMMON")

  • 密集排序:RANK_AGG([],[SUM_AGG(分数),"desc"],"DENSE")

  • 连续排序:RANK_AGG([],[SUM_AGG(分数),"desc"],"UNIQUE")

  • 比例排序:RANK_AGG([],[SUM_AGG(分数),"desc"],"PERCENTILE")

2024-09-18_19-13-26.png

2. 注意事项编辑

  • 详情请参见:WINDOW函数概述-注意事项

  • RANK_AGG 函数输出的是聚合字段,在自助数据集中不支持直接输出,需要与 DEF 函数组合后输出明细级别字段。

3. 示例编辑

公式结果备注
 RANK_AGG([省份],[SUM_AGG(销售额)])省内按照销售额求和进行升序排列


4. 密集排序-并列排名不占位编辑

详情参见文档:并列排名不占位

5. 交叉表求横向排名编辑

2024-08-14_15-43-51.png

5.1 制作交叉表

分析各「类别」下不同「子类别」,各「地区」的「销售额」情况,并对销售额设置数值格式。如下图所示:

2024-08-14_15-33-05.png

5.2 计算不同地区销售额排名

按「类别、子类别」分组,对销售额降序排名,如下图所示:

公式=RANK_AGG([类别,子类别],[SUM_AGG(销售额),"desc"])

2024-08-14_15-37-47.png

将字段拖入交叉表中,得到排名。如下图所示:

2024-08-14_15-43-51.png