原文:
《BI项目笔记》多维数据集中度量值设计时的聚合函数
Microsoft SQL Server Analysis Services 提供了几种函数,用来针对包含在度量值组中的维度聚合度量值。默认情况下,度量值按每个维度进行求和。但是,通过 AggregateFunction 属性,您可以修改此行为。聚合函数的累加性可确定度量值如何在多维数据集的所有维度中进行聚合。聚合函数具有三个级别的累加性:
累加性 - 累加性度量值主要是指父级层次结构中成员的值等于它所有子级成员值的总和。
- Sum - 父级成员值等于它所有子级成员值的总和,这是 SSAS 分析服务默认的聚合函数。
- Count - 计算事实表中特殊列非空值的函数,或者计算事实表的行数。父级成员也可以由它的所有子级成员值相加求得。
半累加性 - 半累加性度量值只是对某些子级得到进行聚合。
- Max - 父级成员值等于其所有子级中的最小值。
- Min - 父级成员值等于其所有子级中的最大值。
- FirstChild - 父级成员的值等于子级成员值的总和,但是如果在时间维度中,父级成员的值等于第一个子成员的值。
- LastChild - 父级成员的值等于子级成员值的总和,但是如果在时间维度中,父级成员的值等于最后一个子成员的值。
- FirstNonEmpty - 父级成员的值等于子级成员值的总和,但是如果在时间维度中,父级成员的值等于第一个非空子成员的值。
- LastNonEmpty - 父级成员的值等于子级成员值的总和,但是如果在时间维度中,父级成员的值等于最后一个非空子成员的值。
- AverageOfChildren - 对多维数据集时间维度中最低粒度级别的所有维度进行求和,然后再求平均值,即得所求值。(非空子成员)
- ByAccount - 当多维数据集包含一个账户类型的维度时,需要使用按账户聚合函数。度量值的按账户聚合函数是维度 Account 成员的一个属性。
非累加性 - 父级成员的值不能由自己的值得到。
- DistinctCount - 非重复计算,对事实表中无重复的列进行计数,成员值是通过对该成员的无重复技术而确定的。
- NONE - 不进行任何聚合。
参考文献:
配置度量值属性
http://technet.microsoft.com/zh-cn/library/ms175623(v=sql.105).aspx
定义半累加性行为
http://technet.microsoft.com/zh-cn/library/ms175356(v=sql.105).aspx
使用聚合函数
http://technet.microsoft.com/zh-cn/library/ms365396(v=sql.105).aspx
度量值和度量值组
http://technet.microsoft.com/zh-cn/library/ms174792(v=SQL.105).aspx