MDX 你如何 return 几个月的平均值
MDX how do you return the Average over a number of months
我一直在查看 AVG(MDX) 并希望能够获得几个月的平均值。
将其用作简单的 MDX:
SELECT NON EMPTY
{[Measures].[Freight]} ON COLUMNS
,NON EMPTY
{[Due Date].[Calendar Month].[Calendar Month].MEMBERS} ON ROWS
FROM [Adventure Works Cube];
会return:
是否可以return:
Freight
August 108567.2463
February 208635.5203
July 103180.7446
March 209712.7297
November 103873.3682
Avg Freight 146793.9218
我试过:
WITH MEMBER [Measures].[Average Freight] AS
AVG([Due Date].[Calendar Month].[All],
[Measure].[Sale])
SELECT NON EMPTY
{[Measures].[Freight],
[Measures].[Average Freight]} ON COLUMNS
,NON EMPTY
{[Due Date].[Calendar Month].[Calendar Month].MEMBERS} ON ROWS
FROM [Adventure Works Cube];
只是 returns:
下面是 Adventure Works 的测试示例。 msdn Avg (MDX) link
WITH MEMBER [Measures].[Average Freight] AS
AVG ([Measures].[Freight Cost]
)
SELECT
[Measures].[Average Freight] ON COLUMNS,
NON EMPTY [Date].[Calendar].[Month].Members ON ROWS
FROM
[Adventure Works];
结果
Average Freight
July 2005 24067.9287
August 2005 51115.0148999999
September 2005 40996.0152
October 2005 33951.2746
....
如果你这样做,你不会得到平均值:
WITH
MEMBER [Measures].[Average Freight] AS
Avg([Measures].[Freight Cost])
SELECT
{
[Measures].[Average Freight]
,[Measures].[Freight Cost]
} ON COLUMNS
,NON EMPTY
[Date].[Calendar].[Month].MEMBERS ON ROWS
FROM [Adventure Works];
平均值与实测刚好相同:
要计算平均值,您需要一个 SET 来计算平均值:
WITH
MEMBER [Measures].[Average Freight] AS
Avg
(
[Date].[Calendar].CurrentMember.Children
,[Measures].[Freight Cost]
)
SELECT
{
[Measures].[Average Freight]
,[Measures].[Freight Cost]
} ON COLUMNS
,NON EMPTY
[Date].[Calendar].[Month].MEMBERS ON ROWS
FROM [Adventure Works];
所以平均测量值现在有意义:
我一直在查看 AVG(MDX) 并希望能够获得几个月的平均值。
将其用作简单的 MDX:
SELECT NON EMPTY
{[Measures].[Freight]} ON COLUMNS
,NON EMPTY
{[Due Date].[Calendar Month].[Calendar Month].MEMBERS} ON ROWS
FROM [Adventure Works Cube];
会return:
是否可以return:
Freight
August 108567.2463
February 208635.5203
July 103180.7446
March 209712.7297
November 103873.3682
Avg Freight 146793.9218
我试过:
WITH MEMBER [Measures].[Average Freight] AS
AVG([Due Date].[Calendar Month].[All],
[Measure].[Sale])
SELECT NON EMPTY
{[Measures].[Freight],
[Measures].[Average Freight]} ON COLUMNS
,NON EMPTY
{[Due Date].[Calendar Month].[Calendar Month].MEMBERS} ON ROWS
FROM [Adventure Works Cube];
只是 returns:
下面是 Adventure Works 的测试示例。 msdn Avg (MDX) link
WITH MEMBER [Measures].[Average Freight] AS
AVG ([Measures].[Freight Cost]
)
SELECT
[Measures].[Average Freight] ON COLUMNS,
NON EMPTY [Date].[Calendar].[Month].Members ON ROWS
FROM
[Adventure Works];
结果
Average Freight
July 2005 24067.9287
August 2005 51115.0148999999
September 2005 40996.0152
October 2005 33951.2746
....
如果你这样做,你不会得到平均值:
WITH
MEMBER [Measures].[Average Freight] AS
Avg([Measures].[Freight Cost])
SELECT
{
[Measures].[Average Freight]
,[Measures].[Freight Cost]
} ON COLUMNS
,NON EMPTY
[Date].[Calendar].[Month].MEMBERS ON ROWS
FROM [Adventure Works];
平均值与实测刚好相同:
要计算平均值,您需要一个 SET 来计算平均值:
WITH
MEMBER [Measures].[Average Freight] AS
Avg
(
[Date].[Calendar].CurrentMember.Children
,[Measures].[Freight Cost]
)
SELECT
{
[Measures].[Average Freight]
,[Measures].[Freight Cost]
} ON COLUMNS
,NON EMPTY
[Date].[Calendar].[Month].MEMBERS ON ROWS
FROM [Adventure Works];
所以平均测量值现在有意义: