14:00MDXは難解で、習得が困難なクエリー言語であると言われています。この連載では、MDXを可能な限り短期間で実践で使えるレベルまで習得できるよう、使用例とともに入門編として解説します。今回は計算するメンバーについて解説します。(3)増加減少率(4)構成比Page32)データ形式の編集(カンマ区切りなど)まとめ参考資料はじめにMDXは難解で、習得が困難なクエリー言語であると言われています。この連載では、全7回をとおして、難解と言われているMDXを可能な限り短期間で実践で使えるレベルまで習得できるよう、基本的な考え方やよく使う関数などに範囲を限定し、使用例とともに入門編として解説しています。Servicesを前提として解説しています。MDXにはいわゆる「方言」が多く、記述内容が他の多次元データベース製品に必ずしも適合しない可能性があることをあらかじめご了承ください。第4回目となる今回は、計算するメンバーについて説明します。Services計算されるメンバーキューブ内に存在しているセルの値をそのまま取得・表示するのではなく、何らかの計算を行った結果をクエリー結果として取得したい場合があります。MDXではそのような場合、「計算されるメンバー」を定義して使用します。(メンバーの計算式)計算されるメンバーの定義はSELECT句の前に記述します。サンプルキューブから、利益金額(売上金額-原価金額)を取得するMDXを記述してみます。このMDXの実行結果は次のようになります。実行結果このように、計算されるメンバーを使用することで、もともとのキューブには存在しない項目を、計算値として取得できます。計算式には別ディメンションのメンバーを指定したタプルや各種関数などを使用してさまざまな計算を行うことができます。例1のクエリーに商品の売上金額構成比を追加してみます。以下の計算式が、「その商品の売上金額構成比」を意味しています。CurrentMember.Parent」の記述が「自分自身の1つ上の階層のメンバー(この場合は全商品)」を表わす関数であり、[URIKINGAKU]とタプルにすることで「全商品の合計売上金額」を指定しています(関数の詳しい内容については次回詳述します)。このように、計算式を正しく指定することにより、さまざまな計算をクエリーに埋め込むことができます。計算されるメンバーはクエリー発行の都度、計算処理を行うことに気をつけてください。多次元データベースがリレーショナルデータベースより圧倒的に速い理由は、「あらかじめ集計計算処理を行っており、クエリー実行時には結果の値を取得するだけ」だからです。従って、計算されるメンバーであまりに複雑な計算を数多く記述してしまうと、せっかくの高レスポンスが犠牲になってしまう可能性があるのです。言って「クエリーで取得する可能性のある値はすべてキューブのメジャーとしてあらかじめ計算させておくべきだ」ということではありません。メジャー項目数が増えると、今度はキューブの生成時間が長くなり、また生成されるキューブも物理的に肥大化してしまいます。キューブ設計時に、計算によって取得可能な数値をメジャーとして埋め込んでおくべきか、MDX発行時に計算するメンバーとして実行の都度計算させるかは、「キューブの大きさと生成にかかる時間」と「MDX発行時のレスポンス」のトレードオフ関係を考慮しつつ決定すべきものなのです。マサミ)株式会社ヴィバーク代表取締役。BIシステム構築ツール「CubeWalker」を開発しました。2009年10月より発売致します。圧縮・解凍UNIX基本講座@CodeZine『CodeZine(コードジン)』の公式アカウントです。【NEW】デブスト2019デブサミ2019福岡・関西デブサミ2019夏デブスト関西デブサミ2019×ログインEメールパスワード※旧SEメンバーシップ会員の方は、同じ登録情報(Eメール&パスワード)でログインいただけます。イラストの無断転載を禁じます。記載されているロゴ、システム名、製品名は各社及び商標権者の登録商標あるいは商標です。