<< Click to Display Table of Contents >> 多粒度表达式函数复制链接 |
“多粒度表达式”用于在数据源级别运行涉及许多维度的复杂查询,可以让您更好地控制要计算的粒度级别。
本文介绍可在Yonghong BI中使用的LOD表达式的类型,以及何时使用这些表达式和如何设置它们的格式。本文还使用示例来演示如何创建一个简单的LOD表达式。
1.创建LOD表达式
步骤如下:
1.1添加图表
进入制作报告页面,添加柱图并绑定数据如下。
1.2创建LOD表达式
如果您想查看每个产品种类下各产品的平均销售额,而不是各产品种类所有销售额总和,则可以使用LOD来完成。
1)点击右侧“销售额”列的【更多】图标,选择“新建计算列”。
2)在编辑器中,修改计算列名称为“产品平均销售额”。并输入LOD表达式:include(col['产品名称']:: sum(col['销售额']))。
3)完成后点击“确定”。
新建的LOD表达式将自动添加到右侧数据列的度量列中。
1.3在柱图中添加LOD表达式列
将计算列“产品平均销售额”拖入到行,并设置汇总方式为平均,标记组混合为“纵向”。
可以看到,每个产品种类的总和以及按产品名称所计算的平均销售额。如图所示,茶的销售额总和为173,773,茶中各产品的平均销售额为57,591。
2.LOD表达式类型
产品支持三种LOD表达式,
•fixed: 固定维度表达式,可能比视图计算更粗略或者精细,取决于视图上绑定的维度和表达式本身的维度。
•include:包含维度表达式,可能比视图级别的粒度更精细,分组不仅包含组件中绑定的维度,还包含了表达式中指定的维度。
•exclude:排除维度表达式,可能比视图级别的粒度更粗略,分组时排除了表达式中指定的维度。
LOD表达式语法参考下表,
函数 |
语法 |
说明 |
举例 |
exclude |
exclude([dim1[,dim2]...]::aggregate-expression]) |
此表达式从组件细节级别中减去维度来计算值 |
例如: exclude(col['procuct']::sum(col['sales']))) |
fixed |
fixed([dim1[,dim2]...]::aggregate-expression]) |
此表达式使用指定的维度计算值,而不引用组件中的任何其他维度 |
例如: fixed(col['procuct']::sum(col['sales'])) |
include |
include([dim1[,dim2]...]::aggregate-expression]) |
此表达式使用指定的维度以及组件中的任何维度来计算值 |
例如: include(col['procuct']::sum(col['sales']))) |
3.示例
3.1fixed
以下fixed详细级别表达式计算每个产品种类的销售额总和:
fixed(col['产品种类']:: sum(col['销售额']))
表格组件上绑定“产品种类”,“产品名称”,“销售额”,由于fixed表达式计算式只考虑引用的维度“产品种类”,所以在表格中可以看到每一个产品种类下的各个产品对应的销售额相同。
3.2include
以下include详细级别表达式计算每个产品种类的销售额总和:
include(col['产品名称']:: sum(col['销售额']))
将改计算列命名为“产品平均销售额”,柱图组件上绑定“产品种类”,“销售额”总和,“产品平均销售额”平均,由于include表达式计算式只考虑引用的维度“产品名称”,所以计算平均值时为每个产品种类下各产品的平均值。
3.3exclude
exclude详细级别表达式对于“占总计百分比”或“与总体平均值的差异”方案非常有用。它们可与诸如“合计”和“参考线”等功能相比。
以下exclude详细级别表达式从“销售额”总和中排除“产品名称”的影响:
exclude(col['产品名称']:: sum(col['销售额']))
将改计算列命名为“排除产品名称”,表格组件上绑定“产品种类”,“产品名称”,“销售额”总和,“排除产品名称”总和。由于exclude表达式计算式排除了维度“产品名称”,所以在表格中可以看到每一个产品种类下的各个产品对应的销售额相同。