2022/04/12

Salesforce GROUP BYについて「SOQL」から解説!|SOQLとSOSLの違い

 
  

SOQLとは?

SOQLとは、「Salesforce Object Query Language」の略で、オブジェクトやデータベースから必要となるデータを取得する際に利用するもののことを指します。 SOQLは、一般的に使用されているデータベース言語の、SQL(Structured Query Language)のSELECTステートメントに似ていると言われますが、これをSalesforceデータ専用に設計したようなものです。 SOQLを利用することにより、データやオブジェクトの数が増えても、効率的にこれらを操作することが可能になります。

データベース言語とは?

データベース言語とは、データベースを操作するための言語であり、プログラミング言語と似ていますが根本的な違いがあります。それは、データベース言語はデータベースに対してしか命令することができない、というところです。 プログラミング言語は、よく耳にするJavaやPHP、Pythonなどの言語のことで、これらすべてがコンピュータを操作するための言語です。 コンピュータに対し、どのような場合にどのようなアクションを取るのか記述していくため、複雑な処理や、繰り返し処理などを定義することができます。 一方、データベース言語は、上にも書いたようにデータベースに対してしか命令することができず、命令の方法もシンプルなものとなっています。 データベース言語では、「A入力にはBアクション」のような、一行程度の文をコマンドへ打ち込むことで命令が実行される「対話型」方式となっています。 そのため、複雑な操作や連続した操作などを行いたい場合は、プログラミング言語の中にデータベース言語を埋め込むことで命令を実行させます。 ここまでの紹介で、データベース言語は、プログラミング言語よりも、限られた範囲で利用される言語で、役割が大きく異なるということがうかがえるでしょう。

SOSLとは?

SOQLと合わせてよく耳にする「SOSL」という単語ですが、「Salesforce Object Search Language」の略で、これもSOQLと同じようにデータベース言語です。 この二つの言葉の大きな違いは二点あります。 一点目は、情報の検索についてです。SOQLでは、一度に一つの標準、カスタムオブジェクトからしか特定の情報を検索することしかできません。これに対し、SOSLでは一度に複数のオブジェクトからの検索が可能となっています。 二点目は、デフォルトの検索結果が、完全一致か一部一致かの違いです。SOQLでは、完全一致で項目の値を検索しますが、SOSLでは項目値が一部一致のレコードも返されます。

SOQLとSOSLのどちらを使用するのか

SOQLクエリはSELECTSQLステートメントに相当し、組織のデータベースを検索するのに対し、SOSLは、検索インデックスに対してテキストベースの検索をプログラム的に実行する方法になります。 そのため、この二つのどちらを使用するかは検索するオブジェクトや項目を認識しているかどうかがポイントになります。 SOQLを使用する場合としては、データがどのオブジェクトにあるかを認識しているという前提で、一つのオブジェクトや、相互に関連する複数のオブジェクトからデータを取得する場合や、指定された条件を満たすレコード数をカウントする場合などが挙げられます。 SOSLを使用する場合は、データがどのオブジェクトや項目にあるかを認識していないという前提で、複数のオブジェクトや項目を効率的に取得する場合や、ディビジョン機能を使用して特定のディビジョンデータを取得する場合などが挙げられます。

GROUPBYオプションとは

GROUPBYオプションは、SOQL(Salesforce Object Query Language)で使用するコードの一つです。 どのようなものかというと、多くのレコードを個別に処理する代わりにレコードのグループを指定でき、オブジェクトのすべての個別値(nullを含む)を紹介するには、集計関数を使用せずにGROUPBY句を使用できる、というものです。

GROUPBYを使用する場合

APIバージョン18.0以降では、GROUPBYをSUM()やMAX()などの集計関数と使用でき、コードで個々のレコードを処理せずに、データを集計し、クエリ結果をロールアップするために利用されます。 具体的なコード例を挙げます。
SELECT LeadSource, COUNT(Name)
FROM Lead
GROUP BY LeadSource
これにより、追加のコードを記述することなく、同じ結果を取得できます。

GROUPBYの注意点

GROUPBYは複数のものをグループ化し一つにまとめるというものです。 そのため、表示指定をする場合グループ化された情報を表示するようにしてしなければいけません。

GROUPBYを利用して効率化を!

今回はSOQLとSOSL、そしてGROUPBYについて紹介しました。 SOQLはSalesforce Object Query Languageの略であり、SOSLはSalesforce Object Search Languageの略で、二つともデータベース言語と呼ばれるものです。 そして、その中のコードの一つである、GROUPBYを利用することで、集計関数を使用せずに集計などをかけることができるようになります。 GROUPBYを利用して、効率的なコーディングをしましょう。]]>

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

この記事の監修者・著者

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

おすすめの動画

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

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

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