2016-04-29 32 views
0

我正在學習MDX,我有一個問題可以創建一個百分比。 基本上,我從Google Analytics API中爲多組頁面提取數據。 對於每組,我提取UniquePageviews的數量。MDX:從相同維度中存在的度量計算百分比

的SQL列看起來像這樣:

  • 日期
  • deviceCategory
  • 媒體
  • uniquePageviews
  • 交易
  • set_of_page(該行包含組頁面的名稱。爲了簡化:1.首先,2.第二,3.第三)
  • 品牌(品牌A,品牌B)
  • 市場(市場X,市場Y)

這是當前視圖我有: http://i.stack.imgur.com/ZTC30.png

我想已經是UniquePageviews的百分比從該組頁面1到2和2至3於是:UniquePageviews 2/Uniquepageviews 1 & UniquePageviews 3/Uniquepageviews 2.

http://i.stack.imgur.com/xf2gc.png

你知道在MDX中做到這一點的簡單方法嗎?

下面是代碼我有現在顯示瀏覽量:

WITH 
SET [~COLUMNS_Brand_Brand] AS 
SET [~COLUMNS_Market_Market] AS 
    {[Market].[Market].Members} 
SET [~COLUMNS_set_of_page segment_set_of_page] AS 
    {[set_of_page].[set_of_page].Members} 
SET [~ROWS] AS 
    {[Date].[Date].Members} 
SELECT 
NON EMPTY NonEmptyCrossJoin([~COLUMNS_Brand_Brand], NonEmptyCrossJoin([~COLUMNS_Market_Market], [~COLUMNS_set_of_page_set_of_page])) ON COLUMNS, 
NON EMPTY [~ROWS] ON ROWS 
FROM [MySQL_Cube] 

非常感謝!

回答

0

目前你的mdx隱含地採取措施?所有的mdx查詢都需要測量,所以你當前的腳本必須選擇默認的多維數據集度量 - 我將稱這[Measures].[NumTransactions]
另外你的第一個SET似乎是空白的。因此,讓我們假設完整,明確腳本是:

WITH 
SET [~COLUMNS_Brand_Brand] AS {[Brand].[Brand].[All]} 
SET [~COLUMNS_Market_Market] AS 
    {[Market].[Market].Members} 
SET [~COLUMNS_set_of_page segment_set_of_page] AS 
    {[set_of_page].[set_of_page].Members} 
SET [~ROWS] AS 
    {[Date].[Date].Members} 
SELECT 
NON EMPTY NonEmptyCrossJoin([~COLUMNS_Brand_Brand], NonEmptyCrossJoin([~COLUMNS_Market_Market], [~COLUMNS_set_of_page_set_of_page])) ON COLUMNS, 
NON EMPTY [~ROWS] ON ROWS 
FROM [MySQL_Cube] 
WHERE [Measures].[NumTransactions]; 

我使用MS SSAS所以nitation的有點不確定,與你的作品,但只是爲了幫我,我會切換到*運營商的交叉連接:

WITH 
SET [~COLUMNS_Brand_Brand] AS {[Brand].[Brand].[All]} 
SET [~COLUMNS_Market_Market] AS 
    {[Market].[Market].Members} 
SET [~COLUMNS_set_of_page segment_set_of_page] AS 
    {[set_of_page].[set_of_page].Members} 
SET [~ROWS] AS 
    {[Date].[Date].Members} 
SELECT 
NON EMPTY 
    [~COLUMNS_Brand_Brand] 
    *[~COLUMNS_Market_Market] 
    *[~COLUMNS_set_of_page_set_of_page] ON COLUMNS, 
NON EMPTY [~ROWS] ON ROWS 
FROM [MySQL_Cube] 
WHERE [Measures].[NumTransactions]; 

我希望(如未經測試,我有點不能確定所有方面將保留),我們可以再加上一點由前一分爲當前頁面定製meassure得到的百分比:

WITH 
SET [~COLUMNS_Brand_Brand] AS {[Brand].[Brand].[All]} 
SET [~COLUMNS_Market_Market] AS 
    {[Market].[Market].Members} 
SET [~COLUMNS_set_of_page segment_set_of_page] AS 
    {[set_of_page].[set_of_page].Members} 
SET [~ROWS] AS 
    {[Date].[Date].Members} 
MEMBER [Measures].[NumTransactionsPercent] AS 
    [set_of_page].CURRENTMEMBER 
/[set_of_page].CURRENTMEMBER.LAG(1) 
SELECT 
NON EMPTY 
    [~COLUMNS_Brand_Brand] 
    *[~COLUMNS_Market_Market] 
    *[~COLUMNS_set_of_page_set_of_page] ON COLUMNS, 
NON EMPTY [~ROWS] ON ROWS 
FROM [MySQL_Cube] 
WHERE [Measures].[NumTransactionsPercent]; //[Measures].[NumTransactions];