固定维度表达式

<< 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的结果是过滤完之后再计算的结果。

calculation_lod_filter

2. 示例:通过使用fixed表达式计算组内占比

如下表,如果想要计算爱尔兰咖啡的销售额占整个咖啡销售额的百分比,则可以使用fixed详细级别表达式。

calculation_lod7

操作步骤如下:

1)新建计算列“产品种类销售额”,计算出每个产品种类的销售额。在编辑器中输入LOD表达式:fixed(col['产品种类']:: sum(col['销售额']))。

2)新建计算列“销售额占比”,用每个产品名称的销售额总和除以每个产品种类的销售额总和。在编辑器中输入表达式:sum(col['销售额'])/sum(col['产品种类销售额'])。

3)将建立的表达式“产品种类销售额”和“销售额占比”添加绑定到表格中,就可以轻松地看到每个产品名称在每个产品种类下的占比情况,爱尔兰咖啡的销售额占整个咖啡销售额的29%,效果如图。

calculation_lod8_zoom76

同理,我们延伸一下,每个“市场级别”-“产品种类”-“产品名称”的销售额,也可以通过多粒度表达式计算出来。例如:Fixed(col['市场级别'], col['产品种类'], col['产品名称']::Sum (col['销售额'])),可以清晰的看到我们按照维度一步一步的把计算粒度扩展,往更细粒度的角度查看销售额贡献的百分比。