CodeZine(コードジン)

特集ページ一覧

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

第1回

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2009/09/09 14:00

目次

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の基本構文を解説します。

参考資料



  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

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

著者プロフィール

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

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

あなたにオススメ

All contents copyright © 2005-2022 Shoeisha Co., Ltd. All rights reserved. ver.1.5