この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

GROUP BY

SOQL クエリで GROUP BY オプションを使用すると、個々のクエリ結果の反復処理を避けることができます。つまり、多くのレコードを個別に処理する代わりにレコードのグループを指定します。

API バージョン 18.0 以降では、コードで個々のレコードを処理せずに、データを集計してクエリ結果をロールアップするために、GROUP BYSUM()MAX() などの集計関数と共に使用できます。構文は次のとおりです。

1[GROUP BY fieldGroupByList]

fieldGroupByList では、グループ化する項目のカンマ区切りのリストを指定します。SELECT 句の項目リストに集計関数が含まれている場合は、GROUP BY 句に集計関数以外のすべての項目を含める必要があります。

たとえば、GROUP BY を使用せずに、各 LeadSource 値に関連付けられているリードの数を調べるには、次のクエリを実行できます。

1SELECT LeadSource FROM Lead

次に、クエリ結果を反復するコードを記述し、各 LeadSource 値のカウンタを増分します。GROUP BY を使用すると、追加のコードを記述せずに同じ結果を取得できます。次に例を示します。

1SELECT LeadSource, COUNT(Name)
2FROM Lead
3GROUP BY LeadSource

SOQL でサポートされる集計関数の一覧は、「集計関数」を参照してください。

オブジェクトのすべての個別値 (null を含む) を照会するには、集計関数を使用せずに GROUP BY 句を使用できます。次のクエリは、LeadSource 項目に保存されている個別の値セットを返します。

1SELECT LeadSource
2FROM Lead
3GROUP BY LeadSource

COUNT_DISTINCT() 関数はクエリ条件に一致する、null 以外の個別の項目値の数を返します。