2021/06/7

Salesforce SOQL集計関数 「GROUP BY COUNT」について

 
  

Salesforce SOQLとは?

最初に、SOQLとはSalesforceのデータベースにアクセスするためのSOQL「SalesforceObject Query Language」という独自のオブジェクトクエリ言語のことを指します。 独自言語と聞くと癖がありとっつきにくい印象を持ちます。 しかし、SOQLはSQLとほぼ同じ構文なので、基本的なSQL知識がある人であれば理解するのは難しくないでしょう。

SOQLにおける集計関数とは?

SOQLにはSQLと同様に平均、最小値、最大値取得など便利な集計関数が用意されています。 このような集計関数を使用する場合に必要になってくるのが「GROUP BY」句となります。
関数 説明
AVG() 数値項目の平均値を返す。
COUNT() クエリ条件に一致する行数を返す。
COUNT_DISTINCT() クエリ条件に一致する、null 以外の個別の項目値の数を返す。
MIN() 項目の最小値を返す。
MAX() 項目の最大値を返す。
SUM() 数値項目の合計を返す。

「GROUP BY」句とは?

「GROUP BY 」句とはなに?と思われた方もいるでしょう。 「GROUP BY 」句は取得するデータをグルーピングして集計関数と合わせて使用するものになります。 例えば、各都道府県の人口データテーブルがあり都道府県ごとに一番多い人口の市町村を抽出する際など、都道府県項目を「GROUP BY」を用いてグルーピングし、集計関数MAXで取得することができます。 「GROUP BY」を使わずに使用できるものもありますが、利用用途としては使用し集計することが基本となります。

「GROUP BY COUNT」とはグルーピングごとの件数抽出

「GROUP BY COUNT」とは「GROUP BY」と「COUNT」を合わせて使用しグルーピングしたデータの件数を取得する構文となります。 どのような処理になるかというと、先ほどのような各都道府県のデータテーブルがあり、各市町村郡のデータは保持しているが、都道府県ごとの市町村郡がいくつずつあるのかまとめた情報を取得したい時などに使用します。以下が構文のイメージとなります。 SELECT COUNT(件数元データ項目)・・ WHERE ・・ GROUP BY グルーピングしたい項目 このようにまとめて件数を取得する際に使用します。

「COUNT_DISTINCT」となにが違うの?

集計関数には「COUNT」と「COUNT_DISTINCT」があります。同じCOUNTでなにが違うのでしょうか。 簡単にいうと重複を含むのが「COUNT」、重複を含まないのが「COUNT_DISTINCT」となります。グルーピングの結果まったく同じ内容があれば件数にカウントしないようにすることができます。 使用用途によって使い分けるようにしましょう。

Salesforceを簡単に便利に使用していこう

Salesforceではこのような便利で使いやすいものが用意されています。 Salesforceを使用していく中で、もっとこんなデータが取得できないか、画面の開発でより簡単にデータが取得できないかなど、どんどん湧き出てきます。 情報は広く公開されていますので、知識を深めてSalesforceをもっと便利に使用していきましょう。]]>

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】