この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

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 での別名の使用」を参照してください。

集計関数を含むクエリには、クエリ行の合計数に関する制限が引き続き適用されます。COUNT() および COUNT(fieldname) 以外のすべての集計関数には、集計で使用される各行が制限を追跡するクエリ行として含まれます。

COUNT() および COUNT(fieldname) クエリでは、制限は 1 つのクエリ行と見なされますが、クエリに GROUP BY 句が含まれる場合はグルーピングごとに 1 つのクエリ行が使用されます。

メモ