文章 查看内容

排名函数及应用

排名函数及应用

114 0 函数专题 2024-7-17 14:31 发布者: 观小凡

观远BI可视化图表中高级计算集成了“排名”功能,可以指定排序的计算维度、排序方式,以及展示top N,轻松制作自己需要的排名报表;同时也支持使用窗口函数里的排名函数来计算排名。本文介绍常用的排名函数和使用场 ...
 

      观远BI可视化图表中高级计算集成了“排名”功能,可以指定排序的计算维度、排序方式,以及展示top N,轻松制作自己需要的排名报表。具体介绍请参考 排名计算  。

排名2.png

3种排序类型区别如下:

行列排名:不分组,按行或按列全局排名。

维度组内排名:多维度字段时才可用,按指定维度字段分组后进行组内排名。

维度项排名:按指定维度的聚合结果排名,此时“计算维度”可选维度栏字段或者对比字段。

      但是,有些复杂场景下,需要用排名做筛选,或者用排名信息做二次计算,系统自带的排名功能可能无法满足需求,这种情况下,观远BI也支持使用窗口函数里的排名函数来计算排名。以下介绍常用的排名函数和使用场景。

      函数

                         含义

                         开窗示例

rank

有并列,有占位。出现相同排名时跳过相同排名,排序结构一般是:1,2,2,4,5,5,7……

rank( ) over(partition by [分组字段] order by [排序字段])                             --分组后升序排名

dense_rank

有并列,无占位。出现相同排名时不跳过相同排名,排序结构一般是:1,2,2,3,4,4,5……

dense_rank( ) over(partition by [分组字段] order by [排序字段] desc)          --分组后降序排名

row_number

依次排序,无并列。

排序结构是:1,2,3,4,5,6,7……

row_number( ) over(partition by 1 order by [排序字段])                               --全局升序排名

      多线图分析时,为了避免因维度过多出现很不易读的“意大利面条图” ,经常会需要对维度做 Top N筛选,以下图为例,横轴为日期维度,按「省份」进行对比,分析各「省份」的「销售金额」的月变化趋势;当「省份」较多时,希望仅显示图表中时间范围内「销售金额」合计排名Top N的「省份」。

排名5.jpg

      新建多线图,把需要的字段分别拖入维度、对比、数值栏,此时线条较多较乱。把数值栏用的字段「销售金额」也拖入“更多工具提示”栏,聚合方式默认使用“求和”,点击“高级计算 — 排名”,按照下图设置,确定保存,然后给字段重命名即可。

注意:因为要按照省份的合计值排名,「省份」字段是对比项,所以排序类型要用“维度项排名”。

图片.png

      效果图如下图,光标放上去时,排名信息会显示在浮窗里。

排名1.jpg

1. 在卡片里新建2个计算字段:

「省销售额合计」: sum([销售金额])over(partition by [省份])
「排名」:dense_rank()over(partition by 1 order by [省销售额合计] desc)

图片.png

2. 把 「排名」拖入筛选栏,设置范围为 “小于等于3” 即可。两个方案的最终展示效果基本一致,仅有浮窗和图例显示稍有不同。

排名3.jpg

按销量排名计算商品小类的累计销量占比 。具体方案请参考  按销量排名计算商品小类的累计销量占比

      系统自带的排名功能,是先把数据聚合到最小行数后再排名,所以排序方式可以从 rank、dense_rank,、row_number里按需选择。但是窗口函数相当于在原数据集上排名,并不会把一个分组聚合成一条数据,所以在卡片里仅建议使用函数dense_rank(因为允许并列、无占位)。

      卡片里3个函数开窗计算结果(聚合方式为“无处理”)对比如下图,可以看到,rank、row_number的排名都受数据集原始行数影响,排序结果并不符合预期。如果一定要使用这两种排序逻辑,则建议优先使用系统自带的排名功能,不满足需求的话需要在ETL里先把数据聚合到需要的维度再使用对应的窗口函数计算。

排名4.jpg


路过

雷人

握手
1

鲜花

鸡蛋

刚表态过的朋友 (1 人)

评论

您需要登录后才可以发表言论 登录立即注册
微信服务号
联系我们
电话:400-880-0750
邮箱:hello@guandata.com
Copyright © 2001-2024 观远社区 版权所有 All Rights Reserved. 浙 ICP 备15006424号-3
去评论 去发文 返回顶部
返回顶部