アグリゲーションフィールド
利用可能な Liferay 7.4 U47+/GA47+
集計フィールドは、リレーションシップテーブルのエントリに対して基本的な計算を行い、その結果を表示します。 利用可能な集約関数 には count, sum, average, min, and max が含まれる。 各関数は、フィールドの値をどのように計算するかを決定する。 集計フィールドの値は読み取り専用である。
集約フィールドを含めるには、オブジェクトは1対多のリレーションの親側か、多対多のリレーションのどちらかに存在しなければなりません。 sum, average, min, max関数を使用するには、関連オブジェクトが数値フィールド(integer, long integer, decimal, precision decimal)を持っている必要があります。
集計フィールドを追加した後、 フィルタ を追加することができます。 これらのフィルターは、関連オブジェクトの日付、整数、またはピックリストフィールドを使用して、計算に含まれる項目を制限することができます。 すべてのフィルタ条件を満たすエントリのみが、集計フィールドの計算に含まれます。
関数リファレンス
集計フィールドは、以下の機能を持つことができる。
関数 | Description |
---|---|
回数 | 現在のエントリに関連するエントリの数を確認し、合計を表示します。 |
合計 | 関連する各項目から数値を取得し、合計を計算する。 |
平均 | 関連する各項目から数値を取得し、平均値を計算する。 |
最小 | 各関連項目から数値を取得し、最小値を計算する。 |
最大 | 各関連項目から数値を取得し、最高値を計算する。 |
保険契約と保険金請求という2つの保険オブジェクトがあるシナリオを考えてみましょう。 ポリシーオブジェクトとクレームオブジェクトを一対多の関係で関連付ける場合、これらの集約フィールドをポリシーオブジェクトに追加することができます。
- カウントする。各保険契約に関する請求件数をカウントする。
- Sum各保険に関連する保険金請求の合計金額を計算し表示します。
- 平均値各保険契約に関連する保険金請求の平均金額を計算し、表示します。
- Min:各保険の最低額の請求を特定し、表示します。
- 最大値:各保険の最高値の請求を特定し、表示します。
アグリゲーションフィルタの使用
アグリゲーションフィールドの編集を開始します。
フィルター] で、[追加] ボタン (
) をクリックします。
フィルタリングするフィールドを選択します。 利用可能なオプションは、関連オブジェクトの日付、整数、およびピックリストフィールドです。
Filter Type を選択し、選択したフィールドをどのようにフィルターが使用するかを決定します。 選択できるオプションは、選択したフィールドによって異なります。
日付項目については、「Range」を選択し、開始日と終了日を入力してください。
ピックリストフィールドについては、 Exclude または Include を選択し、必要なピックリスト値をチェックします。
整数フィールドの場合は、「Is Equal To」または「Is Not Equal To」を選択し、整数を入力してください。
[Save] をクリックします。
(オプション) 複数のフィルタを集約フィールドに追加する場合は、この手順を繰り返してください。
完了したら、 [Save] をクリックします。
保存されると、すべてのフィルタ条件を満たす関連項目のみが集計フィールドの計算に含まれます。