GROUP BY に関する考慮事項
SOQL クエリで GROUP BY 句を使用する場合には、特殊な動作や制限について理解する必要があります。
-
一部のオブジェクト項目には、グループ化がサポートされないデータ型があります。GROUP BY 句には、これらのデータ型を使用する項目を含めることができません。
項目でグループ化がサポートされるかどうかを確認するには、SOAP API または REST API を使用して、その項目を含むオブジェクトに対して describe コールを実行します。レスポンスには、項目ごとに GROUP BY 句に項目を含めることができるかどうかが定義された、Boolean の groupable 属性が含まれています。項目で標準オブジェクトのグループ化がサポートされるかどうかを確認するには、『Salesforce および Lightning プラットフォームのオブジェクトリファレンス』で項目のプロパティも確認してください。
- クエリに LIMIT 句と集計関数がある場合には、GROUP BY 句を使用する必要があります。たとえば、次のクエリは有効です。
1SELECT Name, Max(CreatedDate) 2FROM Account 3GROUP BY Name 4LIMIT 5次のクエリは、GROUP BY 句がないので無効です。
1SELECT MAX(CreatedDate) 2FROM Account LIMIT 1 - GROUP BY 句を使用するクエリでは、__r 構文を使用する子リレーションの式は使用できません。詳細は、「リレーション名、カスタムオブジェクトおよびカスタム項目について」を参照してください。
- SOAP API では、GROUP BY 句を含むクエリで queryMore() を使用してより多くの結果を得ることはできません。
- REST API では、GROUP BY 句を含むクエリでクエリロケータを使用してより多くの結果を得ることはできません。