Cognos の概要フィルターと詳細フィルター(自動集計後)の違い

#概要
Cognos Analytics & Cognos BI のレポートの機能には、「概要フィルター」なるものと、「詳細フィルターのプロパティで(自動集計後)」なるものがありますが、どう動きが違うのかというところを、簡単なレポートで動作確認してみました。
![001.JPG](https://qiita-image-store.s3.amazonaws.com/0/147246/723c391b-fb7e-c9d7-661f-d9817504a922.jpeg)

#自動的に集計された数値のフィルター
まず「詳細フィルター(自動集計後)」の話からいきますが、「自動集計」とはどういう状況でしょうか。

検証に使ったレポートは、こんなイメージです。
![002.JPG](https://qiita-image-store.s3.amazonaws.com/0/147246/0bb8029a-fd48-ea3e-0914-ed4f2b085be6.jpeg)

レポートの実行日付は、こんなイメージです。
ここで赤枠で囲われている「769,757.23」という数値は「自動集計」された値です。
データベースの販売ファクトテーブル上では、もっと細かい粒度で、アロエクリームを、どの販売担当者が、どの日付に、どういう発注方法で売ったというような、細かいデータが入ってますが、ここのリストにはそれらのデータアイテムは配置していないので、アロエクリームを売った「販売担当者」「日付」「発注方法」は一緒くたにして合計された値が表示されています。
これが「自動集計」状態ですね。
![003.JPG](https://qiita-image-store.s3.amazonaws.com/0/147246/6a9c861e-565a-8de1-5fa9-5a3819320a50.jpeg)

こういう場合は、詳細フィルターの(自動集計後)を使用します。
試しに「収益」を5,000,000以上でフィルターをしかけてみると、
![004.JPG](https://qiita-image-store.s3.amazonaws.com/0/147246/a8ac51a8-7b50-00f2-67f3-5caa6a48faac.jpeg)

さきほどの「アロエクリーム」は消え、救急用具の下は収益 =5,000,000以上の「デラックス家庭用救急セット」のみの表示になりました。
![005.JPG](https://qiita-image-store.s3.amazonaws.com/0/147246/5bfcf8d2-3c06-4e9a-49ba-3aa4f1eaf13a.jpeg)

#自動的ではない集計
では「概要フィルター」はどういう時に使用するのでしょうか。
詳細フィルターは「自動集計」でしたが、自動ではない集計とは、つまりこんな時です。
「収益」列を選んで「集計」から「合計」を選択すると、以下の様な合計行が作成されます。
![006.JPG](https://qiita-image-store.s3.amazonaws.com/0/147246/98a11f8c-b9e1-7614-ad42-b8bdb7e8b63d.jpeg)

レポートを実行してみるとこんなイメージで、製品タイプごとの合計収益が表示されています。
この製品タイプの合計で、フィルターをかけたい場合、どうやったら良いでしょうか。
![007.JPG](https://qiita-image-store.s3.amazonaws.com/0/147246/83045ddc-466d-0d7e-de92-61860fd375e2.jpeg)

という訳で、「概要フィルター」の登場です。
先ほどの「合計」行の作成の結果、クエリー内に「合計(収益)」というアイテムが自動的に作成されるので、これに対して[合計(収益)] > 20,000,000 の概要フィルターを作成し、図のように「範囲」から「製品タイプ」を指定します。
「製品タイプ」のレベルにフィルターをかけてね、という事です。
![008.JPG](https://qiita-image-store.s3.amazonaws.com/0/147246/2420cf5b-a166-c7db-25a5-ec38bd4f4812.jpeg)

見事に20,000,000以下の「救急用具」は消えました。
![009.JPG](https://qiita-image-store.s3.amazonaws.com/0/147246/31427dd9-21dd-eacc-9fed-25911e966f2c.jpeg)

基本的には「概要フィルター」の使用場面は、このイメージです。

#ちょっと応用
では、ちょっと応用で、それぞれの「製品タイプ」の中で、最も収益の高い「製品」のみを表示するフィルターをかけたい場合、どっちのフィルターを使用すれば良いでしょうか。
![010.JPG](https://qiita-image-store.s3.amazonaws.com/0/147246/349d6843-e8e6-e86a-de2c-d42f6c36ecf9.jpeg)

これも「概要フィルター」です。
「製品タイプ」の中で、最も収益の高い「製品」を取得するため、図のような「[収益] = maximum([収益] for [製品タイプ])」というフィルターを作成していますが、maximum()も(自動でない)集計なので、概要フィルターになります。
範囲の対象は「製品」レベルです。
![011.JPG](https://qiita-image-store.s3.amazonaws.com/0/147246/9af19482-b1bd-673c-f90b-14f5e55f7695.jpeg)

ちなみにグループ化は「製品」のレベルにも指定しています。範囲の対象に指定する際には、必要なようです。
![012.JPG](https://qiita-image-store.s3.amazonaws.com/0/147246/8c369308-237c-b507-e7df-951d7f133a41.jpeg)

はい、できました。
![013.JPG](https://qiita-image-store.s3.amazonaws.com/0/147246/70298baf-33b9-5d7d-f51d-6371c8edbabf.jpeg)

では、これを「詳細フィルター(自動集計後)」でやってみたらどうなるでしょうか。
![016.JPG](https://qiita-image-store.s3.amazonaws.com/0/147246/ffc27c1b-d631-0898-6d99-1a9a7506a787.jpeg)

こうなります。
![017.JPG](https://qiita-image-store.s3.amazonaws.com/0/147246/ac1b396a-67e3-d68b-5e0c-68f18b0e45c6.jpeg)

ちなみに「詳細フィルター(自動集計前)」の場合、一瞬できたかと思いますが、「収益」の値が違います。
最小粒度での最大値が表示されてしまっています。
![015.JPG](https://qiita-image-store.s3.amazonaws.com/0/147246/74dcd974-cdd9-c5ba-2268-acb98e0835f5.jpeg)

#おまけ
じゃあ、先ほどの「集計」操作で「合計」行の作成をするのではなく、クエリーの中に「合計」のデータアイテムをtotal関数で作っておいて、それに対してフィルターする場合はどうなるの？というのを、やってみます。
・製品タイプごとの収益の合計値
![018.JPG](https://qiita-image-store.s3.amazonaws.com/0/147246/63dd1600-9546-6f5a-5809-5bc1bea95a35.jpeg)

・「詳細フィルター(自動集計後)」の場合
![019.JPG](https://qiita-image-store.s3.amazonaws.com/0/147246/c19b0087-3042-462b-25b1-d3c4a65e95e3.jpeg)

・「概要フィルター」の場合
![021.JPG](https://qiita-image-store.s3.amazonaws.com/0/147246/9690b0c9-eb41-b4a9-06f4-5d9d7a40f4f4.jpeg)

この場合、どちらでもOKでした。
クエリー内に集計アイテムを自作してしまえば、どちらでもできてしまうようです。
![022.JPG](https://qiita-image-store.s3.amazonaws.com/0/147246/663390f7-7f48-fe70-2a0d-9a4d88babb7d.jpeg)

という感じですが、これを読んで両フィルターの違いを、多少イメージをわかって頂ければ幸いです。