1

図書館の本というディメンションと、延滞日数というファクトがあるとします。各 num 日の延滞値で存在する本の数を返す mdx 式を作成するにはどうすればよいですか? 言い換えると:

Days Overdue | Num books
1            | 3498
2            | 237
3            | 57

SQL では、答えは簡単です。

select days_late,count(*) from days_overdue_fact group by days_late

mdxで、私はこれを試しました:

with member [Measures].[Overdue Count] as 'count([Book].[System Id].members) '
select  [Measures].[Overdue Count] on 0,
[Measures].[Days Late] on 1
FROM [myCube] 

しかし、Mondrian から苦情が寄せられました。'[Measures]' が複数の独立した軸に表示されます。

私は単に事実の値でグループ化したいだけです。

4

2 に答える 2

2

解決策は、この期限切れの測定値が蓄積されたスナップショット ファクトの一部であることを認識することです (The Data Warehouse Toolkit、第 2 版、Ralph Kimball またはhttp://www.kimballgroup.com/2008/11/05/fact-tablesを参照)。 / )、チェックアウト/チェックイン プロセスを経て書籍のステータスを経時的に追跡します。

このようにスナップショット ファクトをキューブに蓄積しても問題はありません。それが何であるか、そしてそれを照会する方法を理解する必要があります。この場合、この事実に現れる各値の出現回数を数えたいと思います。これを行う最も簡単な方法は、mdx ではなく sql group by を使用することです。

答えは、元の質問の sql です。私が認識しているメジャー値でグループ化するための mdx ソリューションはありません。MDX は、このクエリには不適切なツールです。

于 2013-07-05T15:27:35.487 に答える