この記事の目次
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を使用する場合
APIバージョン18.0以降では、GROUPBYをSUM()やMAX()などの集計関数と使用でき、コードで個々のレコードを処理せずに、データを集計し、クエリ結果をロールアップするために利用されます。 具体的なコード例を挙げます。SELECT LeadSource, COUNT(Name)
FROM Lead
GROUP BY LeadSource
これにより、追加のコードを記述することなく、同じ結果を取得できます。
GROUPBYの注意点
GROUPBYは複数のものをグループ化し一つにまとめるというものです。 そのため、表示指定をする場合グループ化された情報を表示するようにしてしなければいけません。GROUPBYを利用して効率化を!

この記事の監修者・著者

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