SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

難解クエリー言語「MDX」に挑戦

多次元データベースクエリー言語「MDX」入門
~MDX構文の基本文法(1)

第1回

  • X ポスト
  • このエントリーをはてなブックマークに追加

4)セット

 セットとは「1つ以上のタプルの組み合わせ」であり、クエリー実行結果の「軸」の形を指定するものです。セットの記述は各タプルをカンマ区切りで列挙し、{}で括ります。

 最もシンプルなタプルは1つのメンバーですから、最もシンプルなセットは1つのメンバーのみで構成されます。また、1つのセットに複数のタプルを指定する場合はそれらのタプルは同一ディメンションで構成されている必要があります

 では、サンプルキューブからセットをいくつか記述してみましょう。

表1: セットの例
表1: セットの例

 表1の各セットについて解説します。

  • No.1:メジャーの1つのメンバー[SURYO]のみで構成されています。クエリー結果の横軸として指定した場合、1つの列として表示されます。
  • No.2:メジャーのメンバー[SURYO][URIKINGAKU]の2つのメンバーで構成されています。クエリー結果の横軸として指定した場合、2つの列として表示されます。
  • No.3[TOKUISAKI]ディメンションの[TODOFUKEN]属性の複数のメンバーから構成されています。クエリー結果の縦軸として指定した場合、複数の行として表示されます。
  • No.4:1つのタプルで構成されています。タプルは[SHOHIN]ディメンション、[TOKUISAKI]ディメンションおよびメジャーから、それぞれ1つずつのメンバーで構成されています。クエリー結果の横軸として指定した場合、タプルが列として表示されます。
  • No.5:2つのタプルで構成されています。[TOKUISAKI]ディメンションは片方が東京都のみ、もう片方は「全県」の集計です。クエリー結果の横軸として指定した場合、それぞれのタプルが列として表示されます。このようにクエリー結果の軸を「非対称」にバラバラに指定できるのがタプルを使用したMDXの特徴です。

 前述のように、セット内に複数のタプルがある場合、それらのディメンションは同一である必要があります。セットの記述と混同しやすいので注意が必要です。

 例えば、以下の記述は無効となります。

{  [TOKUISAKI].[TODOFUKEN].[東京都], [Measures].[URIKINGAKU]  }

 異なるディメンションのタプル(この場合はメンバー)がセット内に複数指定されているからです。しかしこれが、

{  ( [TOKUISAKI].[TODOFUKEN].[東京都], [Measures].[URIKINGAKU] )  }

 となると「『異なるディメンションが指定された1つの正常なタプル』から構成された正常なセット」であり、正しい記述になります。このように、カッコの種類や数でまったく意味が変わってしまうのがディメンション指定です。慣れるまでは混乱しがちですが、ディメンションの構造とクエリー結果の軸をイメージしながら正確に記述するよう心がけてください。

まとめ

 今回はMDX構文の基本として、メジャーとディメンション、メンバー、タプルとセットの指定の仕方について解説しました。

 次回はいよいよMDXの基本構文を解説します。

参考資料

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
難解クエリー言語「MDX」に挑戦連載記事一覧

もっと読む

この記事の著者

大家 正巳(オオヤ マサミ)

株式会社ヴィバーク代表取締役。 システムアナリスト。 この度、当社では SQL Server Analysis Services に接続し、MDXの発行が可能な BIシステム構築ツール「CubeWalker」を開発しました。2009年10月より発売致します。 高速かつ安価なBIシステム作りに、是非お...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/4334 2009/09/09 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング