<< Click to Display Table of Contents >> 固定维度表达式 |
❖固定维度表达式 fixed:
此表达式使用指定的维度计算值,而不引用组件中的任何其他维度。
语法:Fixed ([dim1[,dim2]...]::aggregate-expression])
例如: Fixed(col['procuct']::Sum(col['sales']))
说明:Fixed 的执行顺序在页面过滤之前,数据集过滤之后。即:如果希望 Fixed 的数据随着过滤条件改变而发生改变,需要将过滤放到 数据集上。
➢案例:山东省的利润额占整个华东地区利润额的百分之多少?
•思路:
1.我们的问题涉及华东地区的利润额,山东省的利润额。当一张表中,只有地区、利润两列时,利润数字代表了整个地区的利润总和,如下图所示(地区的销售利润
总和):
2.当一张表中有地区、省份、利润时,利润数据代表了一个省的利润额,如下图所示(每个省的利润总和):
3.用山东的利润额除以整个华东地区的利润额,就可以得到山东市场的利润对整个华东地区利润的贡献。
4.根据上面的分析,那么是不是可以在同一张表中清晰的得出山东省对整个华东地区的利润额的贡献呢?多粒度表达式,就可以轻松地将山东省利润、华东地区利润、山东省对整个华东地区的占比,放在一张表格中。山东对华东地区的利润贡献为 78.65%。如下图所示:
•永洪BI中实现步骤:
1.通过新建表达式,写一个多粒度表达式,计算出每个地区的利润额。每个地区的利润= Fixed(col['地区']::sum(col['利润']))
2.再通过新建聚合表达式,用每个省的利润总和除以每个地区的利润。每个省利润占该区的百分比=sum(col['利润'])/sum(col['每个地区的利润'])
3.将建立的表达式“每个地区的利润”和“每个省利润占该区的百分比”绑定到表格中,就可以轻松地将山东省利润、华东地区利润、山东省对整个华东地区的占比,效果如图:
同理,我们延伸一下,每个地区,省,城市的利润额,也可以通过多粒度表达式计算出来。
例如:Fixed(col['地区'], col['省'], col['城市']::Sum (col['利润']))
可以清晰的看到我们按照维度一步一步的把计算粒度扩展,往更细粒度的角度查看利润贡献的百分比。