2016-04-29 13 views
0

私はMDXを学習しており、パーセンテージを作成する質問があります。 基本的に、GoogleアナリティクスAPIから複数のページのデータを抽出します。 各セットについて、UniquePageviewの数を抽出します。 MDX:同じ次元に存在するメジャーの割合を計算します。

    • deviceCategory
    • メディアuniquePageviews
    • 取引
    • (行がページのセットの名前が含まれていset_of_page:

      SQL列がそのように見えます。簡単にするには:1.最初、2. 2番目、3. 3番目)

    • ブランド(ブランドA、ブランドB)
    • 市場(市場X、市場Y)

    ここで私が持っている現在の表示されています http://i.stack.imgur.com/ZTC30.png

    私が持っていたい、何がUniquePageviewsの割合であり、 2へと2〜3ページ1のセットからそう: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]; 
    

    私はクロス結合に*オペレータに切り替わりますので、あなたと一緒に働くnitationの少しわからないがMS SSASを使用していますが、ちょうど私を助けるために:

    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]; 
    
    関連する問題