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

Newer Version Available

This content describes an older version of this product. View Latest

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

集計関数を含むクエリには、返されるレコードの合計数に関するその他の SOQL クエリと同じガバナ制限が適用されます。制限対象には、クエリによって返される行数だけでなく、集計に含まれるレコード数も含まれます。この制限に達した場合は、WHERE 句に条件を追加して、クエリが処理するレコード数を減らす必要があります。

メモ