メイン コンテンツをスキップする

集計関数

集計関数と呼ばれる関数のファミリは、複数の項目値を入力として取得し、グループごとに結果を 1 つ返す関数で構成されます。グループ化はチャート軸やスクリプト ステートメント内の group by 条件によって定義されます。

集計関数には、Sum()Count()Min()Max() などがあります。

ほとんどの集計関数は、データ ロード スクリプトとチャート式の両方で使用できますが、構文が異なります。

制限事項:  

内部集計に TOTAL 修飾子が含まれない限り、集計関数のパラメーターに他の集計関数を含めることはできません。 ネストされた集計関数が必要な場合、指定された軸と組み合わせて高度な関数 Aggr を使用します。

データ ロード スクリプトでの集計関数の使用

集計関数は LOAD および SELECT ステートメントの内部でのみ使用できます。

チャート式での集計関数の使用

内部集計に TOTAL 修飾子が含まれない限り、集計関数のパラメーターに他の集計関数を含めることはできません。 ネストされた集計関数が必要な場合、指定された軸と組み合わせて高度な関数 Aggr を使用します。

集計関数は、選択内容によって定義されたレコード セットを集計します。ただし、代替のレコード セットは、Set 分析で Set 数式を用いることで定義できます。

参照先: set 分析

集計の計算方法

集約は、特定のテーブルのレコードをループし、そのテーブル内のレコードを集約します。例えば、Count (<Field>) は、<Field> が存在するテーブル内のレコードの数をカウントします。固有の項目値のみを集計する場合は、Count (distinct <Field>) などの distinct 句を使用する必要があります。

集計関数に異なるテーブルの項目が含まれている場合、集計関数は、構成フィールドのテーブルの外積のレコードをループします。これにはパフォーマンスの低下があります。このため、特に大量のデータがある場合は、このような集計を回避する必要があります。

キー項目の集約

集計の計算方法は、集計に使用するテーブルが明確でないため、キー項目を集計できないことを意味します。例えば、項目 <Key> が 2 つのテーブルをリンクしている場合、Count(<Key>) が最初のテーブルまたは 2 番目のテーブルのレコード数を返す必要があるかどうかは明確ではありません。

ただし、distinct 句を使用する場合、集計は明確に定義されており、計算できます。

したがって、distinct 句を指定せずに集計関数内でキー項目を使用すると、Qlik Sense は意味のない数値を返します。解決策は、distinct 句を使用するか、キーのコピー (1 つのテーブルにのみ存在するコピー) を使用することです。

次のテーブルに対する例では、テーブル間のキーは ProductID です。

[Products (商品)] テーブルと [Details (詳細)] テーブル間の ProductID キー

Count(ProductID)Products テーブル (製品ごとに1つのレコードしかない– ProductID が主キー)、または Details テーブル (製品ごとに複数のレコードがあるものが多い) でカウントされます。個別の製品の数をカウントする場合は、Count(distinct ProductID) を使用する必要があります。特定のテーブルの行数をカウントする場合は、キーを使用しないでください。