0% found this document useful (0 votes)
58 views

MDX Overview Nived Varma

This document provides an overview of MDX (Multi-Dimensional Expressions), the query language used for analyzing data stored in multidimensional databases like Analysis Services cubes. It describes key MDX concepts like members, tuples, sets and cells. It also shows how MDX is used for querying data and defining calculated members and measures. The document includes examples of MDX queries and expressions that navigate the multi-dimensional space and calculate differences between periods.

Uploaded by

BimalGeo
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
58 views

MDX Overview Nived Varma

This document provides an overview of MDX (Multi-Dimensional Expressions), the query language used for analyzing data stored in multidimensional databases like Analysis Services cubes. It describes key MDX concepts like members, tuples, sets and cells. It also shows how MDX is used for querying data and defining calculated members and measures. The document includes examples of MDX queries and expressions that navigate the multi-dimensional space and calculate differences between periods.

Uploaded by

BimalGeo
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 30

MDX Overview

Nived Varma
[email protected]
What Is MDX?
• MDX is Multi Dimensional EXpressions
• MDX is the syntax for querying an Analysis
Services database
• MDX is part of the OLE DB for OLAP spec
• MDX is the key for all advanced analytical
capabilities of Analysis Services
Comparison To SQL
SQL Construct OLAP construct
SELECT… SELECT… (MDX)
CREATE… DSO object model
DROP…
INSERT…
DELETE…
MDX Basics
• MDX allows easy navigation in the
multi dimensional space
• It “understands” the MD concepts of
cube, dimension, level, member
and cell
• It is used for
– Queries – full statements
(SELECT…FROM)
– Business modeling – defining
calculated members using MDX
Expressions – not a full statement
MDX Queries vs. MDX Expressions
• MDX Queries
– Full statements (SELECT…FROM)
– Usually generated by a query tools and
applications such as Excel
– MDX Sample App deals in queries
• MDX Expressions
– Partial MDX statements
– Define a calculated member, or a set, or
member properties, etc.
– Returns a single value (which may
be a set)
MDX Myth
“Only developers need to know MDX”
Fact: MDX is used everywhere:
 Calculated members

 Security settings

 Custom member rollup

 Custom level rollup

 Actions

 Define named “Sets”

 Calculated cells
MDX Constructs
• Members: an item in a hierarchy
– [John Doe]
– [2001]
– [2001].[Q1].[Jan]
• Tuple: an intersection of 2 or more members
– ([Product].[Drink].[Beverages], [Customers].[USA])
– ([Product].[Non-Consumable], [2001])
• Sets: a group of tuples or members
– {[John Doe], [Jane Doe]}
– { ( [Non-Consumable], USA ), ( Beverages, Mexico ) }
– [2001].Children
– TopCount(Store.[Store Name].
Members, 10, Sales)
Every Cell Has A Name...

Groceries
Appliances
Clothing
1997
1998
Time

1999
2000
2001
Measures
Every Cell Has A Name...
(Products.Clothing, Measures.Units, Time.[2000])

Groceries
Appliances
Clothing
1997
1998
Time

1999
2000
2001
Measures
Every Cell Has A Name...
(Products.Clothing, Measures.Units, Time.[2000])
(Products.Clothing, Measures.Sales, Time.[1999])

Groceries
Appliances
Clothing
1997
1998
Time

1999
2000
2001
Measures
Every Cell Has A Name...
(Products.Clothing, Measures.Units, Time.[2000])
(Products.Clothing, Measures.Sales, Time.[1999])
(Products.Groceries, Measures.Cost, Time.Year.[1997])
Groceries
Appliances
Clothing
1997
1998
Time

1999
2000
2001
Measures
The Current Cell: Currentmember

(Products.Clothing, Measures.Units, Time.[2000]) =


(Products.CurrentMember,
Measures.CurrentMember,
Time.CurrentMember)
Groceries
Appliances
Clothing
1997
1998
1999
2000
2001
Sales Cost Units
Naming Cells With Relative References...

Clothing

?
2000

Sales
Naming Cells With Relative References...
(Products.Clothing, Measures.Sales, Time.[2000].PrevMember)

Clothing

?
2000

?
Sales
Naming Cells With Relative References...

(Products.Clothing, Measures.Sales, Time.[2000].PrevMember)


(Products.Clothing, Measures.Sales, Time.[2000].NextMember)

Clothing
?

?
2000

?
Sales
Naming Cells With Relative References...
(Products.Clothing, Measures.Sales, Time.[2000].PrevMember)
(Products.Clothing, Measures.Sales, Time.[2000].NextMember)
(Products.Clothing, Measures.Sales.PrevMember, Time.[2000].Lag(3))
OR
Clothing
(Products.Clothing,
? Measures.Sales.PrevMember,
Time.[2000].Lead(-3))
?
2000

?
Sales
Calculated Members
• Calculated members add
significant power to Analysis cubes
 Pre-define complex
business logic
 Usually create
calculated
measures
 Computed at run-
time
1. How Did Sales This Period Compare With Sales In The Previous
Period?
Year Qtr Mon Sales
2000 790
Q1 120
Jan 30
Feb 40
Mar 50
Q2 200
Apr 65
May 45
Jun 90
Q3 185
Jul 55
Aug 60
Sep 70
Q4 285
Oct 80
Nov 100
Dec 105
1. How Did Sales This Period Compare With Sales In The Previous
Period?

Qtr Mon Sales Delta


Q2 200 80
Apr 65 15
May 45 -20
Jun 90 45

(Time.CurrentMember, Measures.CurrentMember) =
1. How Did Sales This Period Compare With Sales In The Previous
Period?

Qtr Mon Sales Delta


Q2 200 80
Apr 65 15
May 45 -20
Jun 90 45

(Time.CurrentMember, Measures.CurrentMember) =

(Time.CurrentMember, Measures.Sales) -
1. How Did Sales This Period Compare With Sales In The Previous
Period?

Qtr Mon Sales Delta


Q2 200 80
Apr 65 15
May 45 -20
Jun 90 45

(Time.CurrentMember, Measures.CurrentMember) =

(Time.CurrentMember, Measures.Sales)
-
(Time.CurrentMember.PrevMember, Measures.Sales)
Results For Question 1:

Year Qtr Mon Sales Delta


2000 790
Q1 120
Jan 30
Feb 40 10
Mar 50 10
Q2 200 80
Apr 65 15
May 45 -20
Jun 90 45
Q3 185 -15
Jul 55 -35
Aug 60 15
Sep 70 10
Q4 285 100
Oct 80 10
Nov 100 20
Dec 105 5
2. How Did Sales In The Current Period Compare With Sales In The
Same Period Last Year?

Year Qtr Mon Sales


2000 790
Q1 120
Jan 30
Feb 40
Mar 50
Q4 285
Oct 80
Nov 100
Dec 105
2001 850
Q1 170
Jan 50
Feb 55
Mar 65
Q4 275
Oct 90
Nov 100
Dec 85
2. How Did Sales In The Current Period Compare With Sales In The Same
Period Last Year?

Year Qtr Mon Sales Annual Delta


2000 790
Q1 120
Jan 30
Feb 40
Mar 50
2001 850
Q1 170
Jan 50 20
Feb 55
Mar 65

(Time.CurrentMember, Measures.Sales)-

(Time.CurrentMember.Lag(12), Measures.Sales)
2. How Did Sales In The Current Period Compare With Sales In The Same
Period Last Year?
Year Qtr Mon Sales Annual Delta
2000 790
Q1 120
Jan 30
Feb 40
Mar 50
2001 850
Q1 170
Jan 50 20
Feb 55
Mar 65

(Time.CurrentMember, Measures.Sales)-
(Time.CurrentMember,Lag(12), Measures.Sales)
(ParallelPeriod(Year,1,Time.CurrentMember),
Measures.Sales)
Results For Question 2:

Year Qtr Mon Sales Ann. Delta


2000 790
Q1 120
Jan 30
Feb 40
Mar 50
Q4 285
Oct 80
Nov 100
Dec 105
2001 850 60
Q1 170 50
Jan 50 20
Feb 55 15
Mar 65 15
Q4 275 -10
Oct 90 10
Nov 100 0
Dec 85 -20
3. What Have My Sales Been Since The Beginning Of The Year?

Year Qtr Mon Sales


2000 790
Q1 120
Jan 30
Feb 40
Mar 50
Q2 200
Apr 65
May 45
Jun 90
Q3 185
Jul 55
Aug 60
Sep 70
Q4 285
Oct 80
Nov 100
Dec 105
3. What Have Sales Been Since The Beginning Of The Year?

Year Qtr Mon Sales YTD


2000 790
Q1 120 120
Jan 30 30
Feb 40 70
Mar 50 120

Time.Jan,Measures.Sales +
Time.Feb,Measures.Sales +
Time.Mar,Measures.Sales ...
3. What Have Sales Been Since The Beginning Of The Year?

Year Qtr Mon Sales YTD


2000 790
Q1 120 120
Jan 30 30
Feb 40 70
Mar 50 120

Time.Jan,Measures.Sales +
Time.Feb,Measures.Sales +
Time.Mar,Measures.Sales =
Sum(YTD(Time.CurrentMember), Sales)
Results For Question 3:

Year Qtr Mon Sales YTD


2000 790
Q1 120 120
Jan 30 30
Feb 40 70
Mar 50 120
Q2 200 320
Apr 65 185
May 45 230
Jun 90 320
Q3 185 505
Jul 55 375
Aug 60 435
Sep 70 505
Q4 285 790
Oct 80 585
Nov 100 685
Dec 105 790

You might also like