アグリゲーションフィールド

アグリゲーションフィールド

利用可能な Liferay 7.4 U47+/GA47+

集計フィールドは、リレーションシップテーブルのエントリに対して基本的な計算を行い、その結果を表示します。 利用可能な集約関数 には count, sum, average, min, and max が含まれる。 各関数は、フィールドの値をどのように計算するかを決定する。 集計フィールドの値は読み取り専用である。

集約フィールドを含めるには、オブジェクトは1対多のリレーションの親側か、多対多のリレーションのどちらかに存在しなければなりません。 sum, average, min, max関数を使用するには、関連オブジェクトが数値フィールド(integer, long integer, decimal, precision decimal)を持っている必要があります。

集計フィールドを追加した後、 フィルタ を追加することができます。 これらのフィルターは、関連オブジェクトの日付、整数、またはピックリストフィールドを使用して、計算に含まれる項目を制限することができます。 すべてのフィルタ条件を満たすエントリのみが、集計フィールドの計算に含まれます。

関数リファレンス

集計フィールドは、以下の機能を持つことができる。

関数 Description
回数 現在のエントリに関連するエントリの数を確認し、合計を表示します。
合計 関連する各項目から数値を取得し、合計を計算する。
平均 関連する各項目から数値を取得し、平均値を計算する。
最小 各関連項目から数値を取得し、最小値を計算する。
最大 各関連項目から数値を取得し、最高値を計算する。

集計フィールドには、count、sum、average、min、maxの各関数を使用することができる。

保険契約と保険金請求という2つの保険オブジェクトがあるシナリオを考えてみましょう。 ポリシーオブジェクトとクレームオブジェクトを一対多の関係で関連付ける場合、これらの集約フィールドをポリシーオブジェクトに追加することができます。

  • カウントする。各保険契約に関する請求件数をカウントする。
  • Sum各保険に関連する保険金請求の合計金額を計算し表示します。
  • 平均値各保険契約に関連する保険金請求の平均金額を計算し、表示します。
  • Min:各保険の最低額の請求を特定し、表示します。
  • 最大値:各保険の最高値の請求を特定し、表示します。

アグリゲーションフィルタの使用

  1. アグリゲーションフィールドの編集を開始します。

  2. フィルター] で、[追加] ボタン (Add Button) をクリックします。

  3. フィルタリングするフィールドを選択します。 利用可能なオプションは、関連オブジェクトの日付、整数、およびピックリストフィールドです。

  4. Filter Type を選択し、選択したフィールドをどのようにフィルターが使用するかを決定します。 選択できるオプションは、選択したフィールドによって異なります。

    日付項目については、「Range」を選択し、開始日と終了日を入力してください。

    ピックリストフィールドについては、 Exclude または Include を選択し、必要なピックリスト値をチェックします。

    整数フィールドの場合は、「Is Equal To」または「Is Not Equal To」を選択し、整数を入力してください。

  5. Save] をクリックします。

    フィールドとフィルターの種類を選択します。

  6. (オプション) 複数のフィルタを集約フィールドに追加する場合は、この手順を繰り返してください。

    集計フィールドに複数のフィルタを追加する

  7. 完了したら、 [Save] をクリックします。

保存されると、すべてのフィルタ条件を満たす関連項目のみが集計フィールドの計算に含まれます。

追加情報