SOQL 集計関数の使用
SUM() や MAX() などの SOQL の集計関数を使用して、クエリでデータをロールアップおよび集計できます。集計関数の詳細は、『Salesforce SOQL および SOSL リファレンス』の「集計関数」を参照してください。
集計関数は GROUP BY 句を使用せずに使用できます。たとえば、AVG() 集計関数を使用して、すべての商談の平均 [金額] を調べることができます。
1AggregateResult[] groupedResults
2 = [SELECT AVG(Amount)aver FROM Opportunity];
3Object avgAmount = groupedResults[0].get('aver');集計関数を含むクエリは、AggregateResult オブジェクトの配列で結果を返します。AggregateResult は参照専用 sObject で、クエリ結果にのみ使用されます。
集計関数は GROUP BY 句と共に使用すると、より強力にレポートを生成するツールとなります。たとえば、キャンペーンごとにすべての商談の平均 [金額] を調べることができます。
1AggregateResult[] groupedResults
2 = [SELECT CampaignId, AVG(Amount)
3 FROM Opportunity
4 GROUP BY CampaignId];
5for (AggregateResult ar : groupedResults) {
6 System.debug('Campaign ID' + ar.get('CampaignId'));
7 System.debug('Average amount' + ar.get('expr0'));
8}別名のない SELECT リストの集計項目は、形式が expri の暗黙的別名を自動的に取得します。i は、明示的な別名のない集計項目の順序を示します。i の値は 0 から始まり、明示的な別名のない集計項目ごとに増えます。詳細は、『Salesforce SOQL および SOSL リファレンス』の「GROUP BY での別名の使用」を参照してください。