0

タイトルが意味をなさない場合はお詫び申し上げます。おそらく単純なことをしようとしていますが、それを理解することができず、答えを探す方法がわかりません。次の MDX クエリがあります。

SELECT
  event_count ON 0,
  TOPCOUNT(name.children, 10, event_count) ON 1
FROM
  events

次のようなものを返します。

|               | event_count |
+---------------+-------------+
| P Davis       |         123 |
| J Davis       |         123 |
| A Brown       |         120 |
| K Thompson    |         119 |
| R White       |         119 |
| M Wilson      |         118 |
| D Harris      |         118 |
| R Thompson    |         116 |
| Z Williams    |         115 |
| X Smith       |         114 |

追加の列 ( ) を含める必要がありますgender。性別は指標ではありません。それはデータの別の次元にすぎません。たとえば、次のクエリを考えてみましょう。

SELECT
  gender.children ON 0,
  TOPCOUNT(name.children, 10, event_count) ON 1
FROM
  events

しかし、これは私が望むものではありません!:(

|              | female | male | unknown |
+--------------+--------+------+---------+
| P Davis      |        |      |     123 |
| J Davis      |        |  123 |         |
| A Brown      |        |  120 |         |
| K Thompson   |        |  119 |         |
| R White      |    119 |      |         |
| M Wilson     |        |      |     118 |
| D Harris     |        |      |     118 |
| R Thompson   |        |      |     116 |
| Z Williams   |        |      |     115 |
| X Smith      |        |      |     114 |

いい試みですが、必要なのnameは 、event_count、およびの 3 つの列だけですgender。それはどれほど難しいでしょうか?

これは明らかに、私の MDX に関する理解不足を反映しています。質の高い入門資料へのポインタをいただければ幸いです。

4

2 に答える 2

3

MDX では、表形式の行セットのように列名を指定するのではなく、各軸でメンバーのセットを構築していることを理解することが重要です。線形の行セットではなく、結果の 2 次元グリッドを記述しています。各ディメンションをテーブルと考えると、メンバ セットはそのテーブルの 1 つの列からの一意の値のセットです。

メジャーをメンバーとして選択すると (最初の例のように)、テーブルから選択しているように見えるため、誤解されやすくなります。ディメンションを選択すると、多くのメンバーが取得され、行と列の間のクロス結合が行われます (この場合、名前と性別が 1 対 1 であるため、スパースです)。

したがって、これら 2 つのディメンションを 1 つの軸でクロス結合し、null セルを除外できます。

SELECT
  event_count ON 0,
  TOPCOUNT(
    NonEmptyCrossJoin(name.children, gender.children), 
    10, 
    event_count) ON 1
FROM
  events

これにより、単一の列 (event_count) と 10 行の結果が得られます。各行はタプル (名前、性別) で構成されています。

それがあなたを正しい道に導いてくれることを願っています。

一般的な入門資料については、「MDX ソリューション」という本から始めるのがよいと思います: http://www.amazon.ca/MDX-Solutions-Microsoft-Analysis-Services/dp/0471748080/

于 2013-04-03T20:48:48.223 に答える