メイン コンテンツをスキップする 補完的コンテンツへスキップ

集計関数

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

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

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

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

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

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

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

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

set 分析および set 数式

集計の計算方法

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

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

キー項目の集約

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

ただし、distinct 句を使用する場合、集計は明確に定義されており、2 つのテーブルにリンクされたキー 項目に対して計算できます。

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

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

ProductsDetails テーブル間の ProductId キー

'ProductID' キー項目でリンクされた 2 つのテーブル

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

3 以上のテーブルに含まれたキー項目の集計

distinct プレフィックスは、最大 2 つのテーブルをリンクするキー項目でのみ正常に機能します。3 つ以上のテーブルに存在するキー項目をグループ化する場合、項目の頻度情報を必要とする操作はすべて NULL を返します。キー項目が 3 つ以上のテーブルにリンクしている場合、項目の非キー コピーを代わりに使用する必要があります。

このページは役に立ちましたか?

このページまたはコンテンツにタイポ、ステップの省略、技術的エラーなどの問題が見つかった場合はお知らせください。

分析の近代化プログラムに参加する

Remove banner from view

分析最新化プログラムにより、重要な QlikView app を危険にさらすことなく最新化しましょう。 ここをクリック して詳細を表示するか、次にお問い合わせください。 ampquestions@qlik.com