SUM
COUNT
AVG
DISTINCTCOUNT
MAX
MIN
扩展[Measures].currentMember.aggType的属性
with member [DIM].[MEM] as
case
when [Measures].currentMember.AggType = 'sum'
then Aggregate([ALL]) - Aggregate([SET])
when [Measures].currentMember.AggType = 'count' || [Measures].currentMember.AggType = 'distinct-count'
then Aggregate(Except([ALLs], [ALL])) - Aggregate([SET])
when [Measures].currentMember.AggType = 'avg'
then (Aggregate([ALL]) - Aggregate([SET]))/(Aggregate(Except([ALLs], [ALL])) - Aggregate([SET]))
when [Measures].currentMember.AggType = 'max'
then Aggregate([ALL])
when [Measures].currentMember.AggType = 'min'
then Aggregate(Except([ALLs], [SET]))
else null end
select [Measures]... on COLUMNS/ROWS,
[DIM].[MEM] on ROWS/COLUMNS
from [Cube]
where ...
RolapBaseCubeMeasure
getPropertyValue(Property.AGGREGATION_TYPE.name) == RolapAggregator.COUNT