集計関数
集計関数と呼ばれる関数のファミリは、複数の項目値を入力として取得し、グループごとに結果を 1 つ返す関数で構成されます。グループ化はチャート軸やスクリプト ステートメント内の group by 条件によって定義されます。
集計関数には、Sum()、Count()、Min()、Max() などがあります。
ほとんどの集計関数は、データ ロード スクリプトとチャート式の両方で使用できますが、構文が異なります。
データ ロード スクリプトでの集計関数の使用
集計関数は LOAD および SELECT ステートメントの内部でのみ使用できます。
チャートの数式での集計関数の使用
内部集計に TOTAL 修飾子が含まれない限り、集計関数のパラメータに集計関数を含めることはできません。 ネストされた集計関数が必要な場合、指定された軸と組み合わせて高度な関数 Aggr を使用します。
集計関数は、選択内容によって定義されたレコード セットを集計します。ただし、代替のレコード セットは、Set 分析で Set 数式を用いることで定義できます。
集計の計算方法
集約は、特定のテーブルのレコードをループし、そのテーブル内のレコードを集約します。例えば、Count (<Field>) は、<Field> が存在するテーブル内のレコードの数をカウントします。固有の項目値のみを集計する場合は、Count (distinct <Field>) などの distinct 句を使用する必要があります。
集計関数に異なるテーブルの項目が含まれている場合、集計関数は、構成項目のテーブルの外積のレコードをループします。これにはパフォーマンスの低下があります。このため、特に大量のデータがある場合は、このような集計を回避する必要があります。
キー項目の集約
集計の計算方法は、集計に使用するテーブルが明確でないため、キー項目を集計できないことを意味します。例えば、項目 <Key> が 2 つのテーブルをリンクしている場合、Count(<Key>) が最初のテーブルまたは 2 番目のテーブルのレコード数を返す必要があるかどうかは明確ではありません。
ただし、distinct 句を使用する場合、集計は明確に定義されており、2 つのテーブルにリンクされたキー 項目に対して計算できます。
distinct 句を指定せずに集計関数内でキー項目を使用すると、QlikView は意味のない数値を返します。解決策は、distinct 句を使用するか、キーのコピー (1 つのテーブルにのみ存在するコピー) を使用することです。
次のテーブルに対する例では、テーブル間のキーは ProductID です。
Products と Details テーブル間の ProductId キー

Count(ProductID) は Products テーブル (製品ごとに1つのレコードしかない– ProductID が主キー)、または Details テーブル (製品ごとに複数のレコードがあるものが多い) でカウントされます。個別の製品の数をカウントする場合は、Count(distinct ProductID) を使用する必要があります。特定のテーブルの行数をカウントする場合は、キーを使用しないでください。
3 以上のテーブルに含まれたキー項目の集計
distinct プレフィックスは、最大 2 つのテーブルをリンクするキー項目でのみ正常に機能します。3 つ以上のテーブルに存在するキー項目をグループ化する場合、項目の頻度情報を必要とする操作はすべて NULL を返します。キー項目が 3 つ以上のテーブルにリンクしている場合、項目の非キー コピーを代わりに使用する必要があります。