概要
Cognos Analytics & Cognos BI のレポートの機能には、「概要フィルター」なるものと、「詳細フィルターのプロパティで(自動集計後)」なるものがありますが、どう動きが違うのかというところを、簡単なレポートで動作確認してみました。
自動的に集計された数値のフィルター
まず「詳細フィルター(自動集計後)」の話からいきますが、「自動集計」とはどういう状況でしょうか。
レポートの実行日付は、こんなイメージです。
ここで赤枠で囲われている「769,757.23」という数値は「自動集計」された値です。
データベースの販売ファクトテーブル上では、もっと細かい粒度で、アロエクリームを、どの販売担当者が、どの日付に、どういう発注方法で売ったというような、細かいデータが入ってますが、ここのリストにはそれらのデータアイテムは配置していないので、アロエクリームを売った「販売担当者」「日付」「発注方法」は一緒くたにして合計された値が表示されています。
これが「自動集計」状態ですね。
こういう場合は、詳細フィルターの(自動集計後)を使用します。
試しに「収益」を5,000,000以上でフィルターをしかけてみると、
さきほどの「アロエクリーム」は消え、救急用具の下は収益 =5,000,000以上の「デラックス家庭用救急セット」のみの表示になりました。
自動的ではない集計
では「概要フィルター」はどういう時に使用するのでしょうか。
詳細フィルターは「自動集計」でしたが、自動ではない集計とは、つまりこんな時です。
「収益」列を選んで「集計」から「合計」を選択すると、以下の様な合計行が作成されます。
レポートを実行してみるとこんなイメージで、製品タイプごとの合計収益が表示されています。
この製品タイプの合計で、フィルターをかけたい場合、どうやったら良いでしょうか。
という訳で、「概要フィルター」の登場です。
先ほどの「合計」行の作成の結果、クエリー内に「合計(収益)」というアイテムが自動的に作成されるので、これに対して[合計(収益)] > 20,000,000 の概要フィルターを作成し、図のように「範囲」から「製品タイプ」を指定します。
「製品タイプ」のレベルにフィルターをかけてね、という事です。
基本的には「概要フィルター」の使用場面は、このイメージです。
ちょっと応用
では、ちょっと応用で、それぞれの「製品タイプ」の中で、最も収益の高い「製品」のみを表示するフィルターをかけたい場合、どっちのフィルターを使用すれば良いでしょうか。
これも「概要フィルター」です。
「製品タイプ」の中で、最も収益の高い「製品」を取得するため、図のような「[収益] = maximum([収益] for [製品タイプ])」というフィルターを作成していますが、maximum()も(自動でない)集計なので、概要フィルターになります。
範囲の対象は「製品」レベルです。
ちなみにグループ化は「製品」のレベルにも指定しています。範囲の対象に指定する際には、必要なようです。
では、これを「詳細フィルター(自動集計後)」でやってみたらどうなるでしょうか。
ちなみに「詳細フィルター(自動集計前)」の場合、一瞬できたかと思いますが、「収益」の値が違います。
最小粒度での最大値が表示されてしまっています。
おまけ
じゃあ、先ほどの「集計」操作で「合計」行の作成をするのではなく、クエリーの中に「合計」のデータアイテムをtotal関数で作っておいて、それに対してフィルターする場合はどうなるの?というのを、やってみます。
・製品タイプごとの収益の合計値
この場合、どちらでもOKでした。
クエリー内に集計アイテムを自作してしまえば、どちらでもできてしまうようです。
という感じですが、これを読んで両フィルターの違いを、多少イメージをわかって頂ければ幸いです。