CompactSet (MDX+)

Returns a 'compacted' set


Name Type Cardinality Default value




For a set of members (not tuples), returns a compact set. The algorithm replaces when found all children of a parent by their parent and this recursively.

The final set is a smaller set of members that generates the same aggregated value as the original set.

As an example, let's take the time dimension with years, month and days as levels. If we take a set with all days from [2 Jan 2009] until [2 Jan 2012], the compactSet function will return a set with the following members : {2 Jan 2009:31 Jan2009} + {Feb 2009:Dec 2009} + {2010} + {1 Jan 2012:2 Jan 2012}. This reduced drastically the number of members while generating the same aggregated value.

CompactSet will not do any optimization if the hierarchy is not a 'standard' one, meaning each parent is strictly the aggregation of his children. This can happen if fact data is added to no leaf members as well as the hierarchy does not aggregate member's fact data to his ancestors (it is a hierarchy attribute). To 'force' compactSet you might use CompactSetX function.

The icCube.xml file contains the property icCube.compactSetInSubSelect that allows to wraps each sub-select axis expression into a CompactSet function call for performance reason. It is defined as true at the time of writing this documentation.


Special Examples (errors, null, ...)

XMLA Properties

Find here the value of the XMLA properties when not specified otherwise.