集計関数

Spring '10から集計関数が利用できるようになりました。
APIバージョン18以上で使用可能のようです。

利用できる集計関数は以下の6種類。

関数名 結果
Avg 平均値
Count レコード件数
Count_Distinct nullと重複値を除いたレコード件数
Max 最大値
Min 最小値
Sum 合計値

こんな感じで↓使用します。

Select Count(Id) From Account Where Name Like 'a%'

グループ化したい場合は、Group By句と共に利用します↓

Select Name, Max(BudgetedCost) From Campaign Group By Name

Apexではクエリ結果を、
AggregateResult(複数の場合はList<AggregateResult>)で受け取り、AggregateResultオブジェクト.get('名称')で値を取得します。

集計関数の名称は↓のように付けます(maxNumが名称)。

Select Name, Max(Num__c) maxNum From Order__c Group By Name

集計関数の結果取得部分のソースコードはこんな感じ。

List<AggregateResult> aggregateList = 
[
Select
Name,
Max(Num__c) maxNum
From
Order__c
Group By
Name
];

for(AggregateResult a : aggregateList) {
Integer maxNum = Integer.valueOf(a.get('maxNum'));

// 処理
}
コメント(4)