多粒度表达式增强

<< Click to Display Table of Contents >>

当前位置:  制作可视化报告 > 配置字段 > 新建计算列 > 多粒度表达式 

多粒度表达式增强

Previous pageReturn to chapter overviewNext page

多粒度表达式增强形式

增强的形式有以下四种:

语法:Fixed|Include|Exclude([dim1[,dim2]...]::aggregate-expression])  

 

1.aggregate-expression可以是直接引用的单独的聚合表达式

例如 Fixed(col['procuct']::col['A'])   col['A']为Sum(col['sales'])

 

2.aggregate-expression可以是聚合表达式中包含细节表达式

例如 Fixed(col['MARKET'],col['MARKET_SIZE']::sum(col['sales'] +1))

 

3.aggregate-expression可以是聚合表达式再进行后期计算

例如 Fixed(col['MARKET'],col['MARKET_SIZE']::sum(col['sales']) +1)

 

4.aggregate-expression可以是条件分支包含的聚合表达式

例如 Fixed(col['MARKET'],col['MARKET_SIZE']::if sum(col['sales'])>50000 then 'Y' else 'N' end)

 

案例:如何查看省份下的市场平均利润和省份所属市场平均利润达标的情况?

思路:

设定所有产品的平均利润为目标,分别计算按市场和产品的平均利润大于总的平均利润的个数和按省份市场和产品的平均利润大于总的平均利润的个数。

 

永洪BI中实现步骤:

1. 新建计算列"平均利润",avg(col['利润'])。

 

计算列平均利润

 

2. 新建计算列"总的平均利润",exclude(col['省份'],col['市场分布'],col['产品名称']:: col['平均利润']),绑定到文本1,报告脚本添加 param["a"]=parseInt(文本1.data);。

平均利润参数

 

3. 新建计算列"按市场和产品平均利润大于总的平均利润",fixed(col['市场分布'],col['产品名称']::if avg(col['利润'])>param["a"] then  1 else  0  end),新建计算列"按省份市场和产品平均利润大于总的平均利润",include(col['市场分布'],col['产品名称']::if avg(col['利润'])>param['a'] then  1 else  0  end)。

4.将'省份'、'按市场和产品平均利润大于总的平均利润'、'按省份市场和产品平均利润大于总的平均利润'绑定到图表中可以得到按省份的市场达标个数和省级市场达标个数的图表,如图:

效果图