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