OBIEE中的TOPN分析
TOPN的意思:
在某个系统中,有时候需要根据一定的规则对数据进行排序,并从排序列表中选取出最大或最小的N个数据,这就是一个TOP-N算法。
实现方式:
但是在利用TOPN进行分析时会存在很多细节问题,例如:如果有重复的数据怎么处理呢?
首先,对没有重复的数据进行TOPN分析
该部分的实现是比较简单的。在OBIEE中直接利用TOPN函数、RANK函数或者利用“显示/隐藏选择步骤窗格”中的排名分析功能来实现。
值得一说的是怎样把排名前N之外的数据合并为“其他”,可以利用“基于其他分析的结果”。我利用topn和rank结合的方式来实现的,如下:
在上图计算rank的部分,红色选择框为分析的维度,注意这里必须要有分析维度的,否则RANK计算会有问题的,原理和oracle的rownum函数类似。
其次,对有重复的数据进行TOPN分析
实现起来是比较复杂的,因为需要考虑对重复数据的处理,这是和业务相关的。一般的需求是当指标值有重复时,然后对维度进行排序,从中选出前N条数据,如下图:
这时你要会问了:“其他”怎么来获取到呢?
过滤器中的“基于分析的结果”就排上用场了,具体可以参见:风的相关文章