6.10、提取【extract】、与聚合【sum、aggregate、avg】
提取【extract】、与聚合【sum、aggregate、avg】 1Extract(set,hierarchy[,hierarchy]) 从set中抽取轴(层次结构)形成新的局部元组, select [Measures].[In Count] on 0,//([Date].[Year Num].&[2016],[Date].[Month Num Of Year].members) extract( ([Date].[YearNum].&[2016],[Date].[Month Num Of Year].members),[Date].[Year Num] ) on 1 from [Park] 注意,抽取后的新元组与被抽取的元组没有限制关系,以上的抽取等于如下: select [Measures].[In Count] on 0,[Date].[Year Num].&[2016] on 1 from [Park] 2Sum(set [,expression]) 汇总集合中每个元组的度量值,如下 with member[Date].[Year Num].[total] as sum( [Date].[Year Num].members ) select [Measures].[In Count] on 0,( [Date].[Year Num].allmembers )on 1 from [Park] 计算[Date].[Year Num]层次结构下,所有的成员的构成的元组的度量值的和。 3Aggregate(set [,expression]) 与sum类型,但是度量值中如果使用了distinct、max、min等时,sum会出错,因为sum只汇总每个元组的度量值,但是aggregate会根据具体的情况来汇总,所以正常情况下一直使用aggregate会更好,用法同sum一样 4Avg(set [,expression]) 计算set内所有元组的度量值的平均值,如下 with member[Date].[Year Num].[avg] as avg( [Date].[Year Num].members ) select [Measures].[In Count] on 0,( [Date].[Year Num].allmembers )on 1 from [Park] 5Existing与聚合函数 Exising可以引入上下文,例: with member [avg] as avg( [Date].[Year Num].[YearNum].members,[Measures].[In Count] ) member[avg-existing] as avg( existing [Date].[Year Num].[YearNum].members,[Measures].[In Count] ) select { [Measures].[In Count],[avg],[avg-existing] }on 0,( [Date].[YearNum].&[2014]:[Date].[Year Num].&[2017] )on 1 from [Park] Existing关键字会引入上下文,也就是select中的条件与关系来进行技术,如果没有existing的话,计算成员是独立的完成度量值的计算的。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |