この記事の目次
Salesforce SOQLとは?

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を簡単に便利に使用していこう
