OBIEE中的TOPN分析

TOPN的意思:

在某个系统中,有时候需要根据一定的规则对数据进行排序,并从排序列表中选取出最大或最小的N个数据,这就是一个TOP-N算法。

实现方式:

但是在利用TOPN进行分析时会存在很多细节问题,例如:如果有重复的数据怎么处理呢?

首先,对没有重复的数据进行TOPN分析

该部分的实现是比较简单的。在OBIEE中直接利用TOPN函数、RANK函数或者利用“显示/隐藏选择步骤窗格”中的排名分析功能来实现。

值得一说的是怎样把排名前N之外的数据合并为“其他”,可以利用“基于其他分析的结果”。我利用topn和rank结合的方式来实现的,如下:

在上图计算rank的部分,红色选择框为分析的维度,注意这里必须要有分析维度的,否则RANK计算会有问题的,原理和oracle的rownum函数类似。

其次,对有重复的数据进行TOPN分析

实现起来是比较复杂的,因为需要考虑对重复数据的处理,这是和业务相关的。一般的需求是当指标值有重复时,然后对维度进行排序,从中选出前N条数据,如下图:

这时你要会问了:“其他”怎么来获取到呢?

过滤器中的“基于分析的结果”就排上用场了,具体可以参见:风的相关文章

原文地址:https://www.cnblogs.com/jerryxing/p/3029139.html