Memos About Salesforce

Salesforceにハマってたこと!

Salesfore apex 集計関数 使い方

こんにちは、管理人の@Salesforce.Zです。

Salesforceの導入だけではなく、よくあるのが

月単位で請求金額をみたいとか

契約単位の請求金額をみたいとか

顧客単位、さらに契約単位、さらに月単位など

の切り口でデータをみたい要望がある

 

今回、それに活かせる集計関数を紹介します。

どんな関数があるか

Salesforceの集計関数に

AVG()、COUNT()、MIN()、MAX()、SUM() 

などがあります。

AVG()

 ・数値項目の平均値を返します

SELECT CampaignId, AVG(Amount)
 ROM Opportunity
 GROUP BY CampaignId

COUNT()

 ・クエリ条件に一致する行数を返します

 SELECT COUNT()
 FROM Account
 WHERE Name LIKE 'a%'

MIN()

  ・項目の最小値を返します

 SELECT MIN(CreatedDate), FirstName, LastName
 FROM Contact
 GROUP BY FirstName, LastName

MAX()

  ・項目の最大値を返します

 SELECT Name, MAX(BudgetedCost)
 FROM Campaign
 GROUP BY Name

SUM() 

  ・数値項目の合計を返します

 SELECT SUM(Amount)
 FROM Opportunity
 WHERE IsClosed = false AND Probability > 60

ここまで本当に、サンプル程度です。 使用時に頭次第に応用できます。

集計関数の返り値

クエリした結果はAggregateResult型です。

AggregateResult[] groupedResults = [SELECT AVG(Amount)aver FROM Opportunity];
Object avgAmount = groupedResults[0].get('aver');

リファレンス

SOQL 集計関数の使用