SAS OLAP Cubes: Percent of Total MDX Calculation
MDX is a powerful tool for building custom calculations in SAS OLAP cubes. Here is a good example of computing the percent of total for a given measure and given hierarchy in a dimension. This code is written as part of the PROC OLAP procedure.
DEFINE Member “[SGF].[Measures].[Percent of Total Sales]” AS
, [Measures].[SalesSum]) = 0
, [Measures].[SalesSum]) = NULL
), FORMAT_STRING=”PERCENT10.2″ ‘ ;
The important thing to realize here is that this MDX code is specific to a hierarchy. I have made the hierarchy references bold in the example above to show this. I will go into how to make this part of the code dynamic in a future post. This MDX calculation does basic division to compute a percentage by using the “CurrentMember” and “Parent” MDX functions to dynamically reference aggregations at the parent or “total” level for a given measure.
Here is the example output:
Example code and data can be found here: http://stephenoverton.net/SASCode/SGF2011/.
Bryan Stines and I wrote a paper for SAS Global Forum 2011 called Measures, Members, and Sets, Oh My! Advanced OLAP Techniques, which also describes this technique.
You can learn more about SAS Business Intelligence from the "SAS BI Bible." Take a peek inside the Building Business Intelligience with SAS book.
Latest posts by Steve Overton (see all)
- Need to Migrate Users, Groups, and Roles between SAS Environments? - November 5, 2013
- Big Data Loading with PostgreSQL available in SAS 9.4 - October 22, 2013
- Everything Still Starts and Ends with Data in SAS Visual Analytics - July 30, 2013
- Coding: Quick Tip for Exploiting and Identifying SAS Formats - July 15, 2013
- Describe Your Table in SAS to Write the SQL Code - May 22, 2013