创建高级度量

 

 

1          聚合函数(累加、伪累加、非累加、半累加)

 

累加函数:父成员的值等于它所有子成员的值的总和,如SUM等

 

伪累加:伪累加不执行累加,它是按某种规则从子成员中取值,如MAX、MIN、AVG等

 

非累加函数:none与distinctCount函数

 

半累加函数:父成员的值等于子成员的值的总和,除非成员在时间的维度上。在时间维度上,父成员的值等于它的一个子成员的时间点。如,要获取用户每个月月初的话费余额,可以用FirstChild函数,以获取这个月第一天各客户余额的总和。其它的还有LastChild、FirstNonEmptyValue、LastNonEmptyValue等

 

2          使用聚合函数新增度量值

 

新增最大销售额度量值

         多维数据集结构的度量值中-》右键“AdventureWorksDW”-》新建度量值-》用法“最大值”-》表源“FactInternetSale”-》源列“SalesAmount”-》确定-》重命名为“MaxSalesAmount”-》处理

 

浏览器查看-》度量拖入“MaxSalesAmount”-》维度拖入“DimProduct”-》我们先看维度成员对应的MaxSalesAmount值-》然后展开子项,看子项的最大值是不是刚才看到的值-》再继续展开一层层的看

 

可以参考上面继续添加度量值,比如总和、行计数、非空值计数、最大值、最小值、非重复计数、无聚合等累加、伪累加、非累加函数。

 

 

但是,半累加函数的使用有需要特别注意的地方,就是【半累加函数的使用必须要一个时间维度】,也就是说Cube中必须要有一个时间维度才行,否则会报错,而且该时间维度的Type必须为“Time”不能为“Regular”

 

         新建度量-》用法“第一个值”-》表源“FactInternetSale”-》源列“SalesAmount”-》确定-》重命名为“FirstSalesAmount”-》处理,结果报错“半累加函数的使用必须要一个时间维度”

 

所以,打开DimTime维度-》维度结构-》右键DimDate-》属性-》Type的值改为“Time”-》处理DimTime-》然后再处理Cube就不会报错了

 

然后我们拖入-》度量FirstSalesAmount-》维度DimTime-》我们先看维度成员对应的FirstSalesAmount值-》然后展开子项,看子项的第一个值是不是刚才看到的值