« SOQLでのリレーションの辿り方 | メイン | カスタム表示ラベル »

2010年7月29日 (木)

集計関数

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'));

// 処理
}

コメント

Integer maxNum = a.get('maxNum');

のところで、下記エラーが出るのですがなぜでしょうか?

Illegal assignment from Object to String

すみません。Integer型に変換しないと駄目でしたね。

正しくは、
Integer maxNum = Integer.valueOf(a.get('maxNum'));
となります。

ご指摘ありがとうございます。

本文も直しておきます。

突然の不躾な指摘にも関わらず、丁寧に対応していただきありがとうございました。

実はsalesforceの勉強を始めたばかりで、何をどう進めていいのか分からず、書き方も良く理解できずにもやもやしながら、こちらにたどり着いたところでした。

今は平均値取得のために試行錯誤していたのですが、こちらの記事を見て、また質問にも答えていただき、なんとか目的の値を取得できました。
ありがとうございました。

こちらこそ、ご指摘ありがとうございました。

最初は調べることだらけで大変かもしれませんが、
学習頑張って下さいね。

当ブログもお役に立てるような記事を、
これからも更新し続けられるよう頑張ります!

コメントを投稿

コメントは記事の投稿者が承認するまで表示されません。

採用情報

株式会社フレクトでは、事業拡大のため、
・Salesforce/Force.comのアプリケーション開発
・HerokuやAWSなどのクラウドプラットフォーム上
でのWebアプリケーション開発
エンジニア、マネージャーを募集中です。

未経験でも、これからクラウドをやってみたい方、
是非ご応募下さい。

フレクト採用ページへ

会社紹介

  • 株式会社フレクトは、
      ・認定コンサルタント
      ・認定上級デベロッパー
      ・認定デベロッパー
    が在籍している、セールスフォースパートナーです。
    また、heroku partnersにも登録されています。
    herokuパートナー
    株式会社フレクト
    Salesforce/Force.com
    導入支援サービス
    弊社の認定プロフェッショナルが支援致します。
    ・Visualforce/Apexによるアプリ開発
    ・Salesforceと連携するWebアプリ開発
    も承っております。
    セールスフォースご検討の際は、
    お気軽にお問合せください。

Twitter

リファレンス

■Developer's Guide(リファレンス)
・Apex  HTML | PDF | 日本語PDF | ガバナ制限
・Visualforce  HTML | PDF
・Web Services API  HTML | PDF | 日本語PDF
・Bulk API  HTML | PDF
・REST API  HTML | PDF | 日本語PDF
・Metadata API  HTML | PDF
・Migration Tool  HTML | PDF
・AJAX Toolkit  HTML | PDF
・Data Loader PDF | 日本語PDF

■早見表 (日本語)
数式
Apex
Visualforce
Web Services API
Chatter