<< Click to Display Table of Contents >> 固定维度表达式复制链接 |
此表达式使用指定的维度计算值,而不引用组件中的任何其他维度。
语法:Fixed ([dim1[,dim2]...]::aggregate-expression])
例如: Fixed(col['procuct']::Sum(col['sales']))
fixed可能会生成度量或维度,具体情况视聚合表达式中的基础字段而定。因此 min(col['Date']) 将是维度,原因是 Date 是维度,而 fixed(col['Province'] :: sum(col['Sales'])) 将是度量,因为 Sales 是度量。FIXED 如果默认识别为度量,也可以转为维度。
1.执行顺序
Fixed 的执行顺序在页面过滤之前,数据集过滤之后。即:如果希望 Fixed 的数据随着过滤条件改变而发生改变,需要将过滤放到数据集上。
示例:
fixed表达式:fixed(col['产品种类']::sum(col['销量']))
include表达式:include(col['产品名称']::sum(col['销量']))
在右侧表格上添加了过滤:产品名称 = 伯爵茶
可以看到fixed表达式的结果是计算完再过滤的结果;而include的结果是过滤完之后再计算的结果。
2. 示例:通过使用fixed表达式计算组内占比
如下表,如果想要计算爱尔兰咖啡的销售额占整个咖啡销售额的百分比,则可以使用fixed详细级别表达式。
操作步骤如下:
1)新建计算列“产品种类销售额”,计算出每个产品种类的销售额。在编辑器中输入LOD表达式:fixed(col['产品种类']:: sum(col['销售额']))。
2)新建计算列“销售额占比”,用每个产品名称的销售额总和除以每个产品种类的销售额总和。在编辑器中输入表达式:sum(col['销售额'])/sum(col['产品种类销售额'])。
3)将建立的表达式“产品种类销售额”和“销售额占比”添加绑定到表格中,就可以轻松地看到每个产品名称在每个产品种类下的占比情况,爱尔兰咖啡的销售额占整个咖啡销售额的29%,效果如图。
同理,我们延伸一下,每个“市场级别”-“产品种类”-“产品名称”的销售额,也可以通过多粒度表达式计算出来。例如:Fixed(col['市场级别'], col['产品种类'], col['产品名称']::Sum (col['销售额'])),可以清晰的看到我们按照维度一步一步的把计算粒度扩展,往更细粒度的角度查看销售额贡献的百分比。