Skip to main content
Announcements
Qlik Introduces a New Era of Visualization! READ ALL ABOUT IT
cancel
Showing results for 
Search instead for 
Did you mean: 
Ochanoko
Creator
Creator

Aggr関数の軸設定について

お世話になります。

クリックセンスのAggr関数についてお聞きしたいです。

下記の画像にあるAgrr動作チェックテーブルに、

Max(Aggr(Sum(販売価格)/Count(商品名),商品カテゴリ,商品名))

Max(Aggr(Sum(販売価格)/Count(商品名),商品名))

という式を設定したメジャーを作ったのですが、このAggr動作チェックテーブルにおいて、

この二つの式が返す結果には全く差異は無いと考えて良いのでしょうか?

Aggr動作チェックテーブルにおいて、各商品カテゴリに含まれる商品毎の最大平均販売価格を得ようとした時、

より正しく書くならどちらの式が正しいかをお聞きしたいです。

Agrr関数.png

 

 

1 Solution

Accepted Solutions
kentaroWakamatsu
Creator II
Creator II

同一の商品名が、複数の商品カテゴリで登録されていなければ、結果としては同じ値が返ってきますが、目的が商品カテゴリ内の商品名単位で集計した結果の最大値を取得するのであれば

 Max(Aggr(Sum(販売価格)/Count(商品名),商品カテゴリ,商品名))

の方が正しい書き方です。

もし同一商品が複数のカテゴリに登録されていると、

 Max(Aggr(Sum(販売価格)/Count(商品名),商品名))

だと、違った計算結果が返ってきます。

私はViewのユーザーなのでViewだけの仕様の可能性もありますが、以前同様の事を試した時に、今回で言う複数の商品カテゴリに同じ名称の商品名の登録があった場合、テーブル上で一番上の商品カテゴリにまとめられました。

確実にカテゴリが分かれるのであれば、「商品カテゴリ」はAggrの軸から外した方が集計速度があがる可能性もあるのでメリットは考えられますが、安全性を考えると検討された方が良いかと思います。

 

View solution in original post

3 Replies
kentaroWakamatsu
Creator II
Creator II

同一の商品名が、複数の商品カテゴリで登録されていなければ、結果としては同じ値が返ってきますが、目的が商品カテゴリ内の商品名単位で集計した結果の最大値を取得するのであれば

 Max(Aggr(Sum(販売価格)/Count(商品名),商品カテゴリ,商品名))

の方が正しい書き方です。

もし同一商品が複数のカテゴリに登録されていると、

 Max(Aggr(Sum(販売価格)/Count(商品名),商品名))

だと、違った計算結果が返ってきます。

私はViewのユーザーなのでViewだけの仕様の可能性もありますが、以前同様の事を試した時に、今回で言う複数の商品カテゴリに同じ名称の商品名の登録があった場合、テーブル上で一番上の商品カテゴリにまとめられました。

確実にカテゴリが分かれるのであれば、「商品カテゴリ」はAggrの軸から外した方が集計速度があがる可能性もあるのでメリットは考えられますが、安全性を考えると検討された方が良いかと思います。

 

kentaroWakamatsu
Creator II
Creator II

どういった事がおこっているか、少しわかりやすいようにQVで作成した画面添付しておきます。

左側にテーブルを表示し、右側が集計結果です。

このテーブルは、商品名 'い' が、商品カテゴリ 'A' および 'B' に存在します。

質問のあった数式の結果は左二つです。

対応しているデータの数が右二つです。

本来、商品カテゴリ 'A' のデータ個数は9個ですが、'B'に該当する'い'の個数も加算されて15個になっています。

Ochanoko
Creator
Creator
Author

非常に納得できる回答内容でした。

キャプチャの内容も非常にわかりやすく、助かりました。

ありがとうございました。

クリックセンスでも全く同じテストを行い、Viewと同じ仕様であることを確認しました。

arrg関数.png