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

小計を識別する GROUPING(fieldName) の使用

SOQL クエリで GROUP BY ROLLUP または GROUP BY CUBE を使用する場合、GROUPING(fieldName) 関数を使用して、行が小計か項目かを判別できます。

GROUP BY ROLLUP または GROUP BY CUBE 句によって小計が追加され、GROUPING(fieldName) 関数で行が項目の小計であるかどうかが識別されます。

データのレポートまたはグラフを作成するためにクエリ結果を反復処理する場合、集計データ行と小計行を区別する必要があります。GROUPING(fieldName) を使用してこれを実行できます。GROUPING(fieldName) の使用は、GROUP BY ROLLUP 句または GROUP BY CUBE 句で複数の項目を使用しているときに、結果を解釈する場合に特に重要です。これは集計データと小計を区別するのに最適な方法です。

GROUPING(fieldName) は、その行が項目の小計の場合は 1、それ以外の場合は 0 を返します。GROUPING(fieldName)SELECT 句、HAVING 句、および ORDER BY 句で使用できます。

さらに詳しく理解する最も簡単な方法は、クエリとその結果を確認することです。

1SELECT LeadSource, Rating,
2    GROUPING(LeadSource) grpLS, GROUPING(Rating) grpRating,
3    COUNT(Name) cnt
4FROM Lead
5GROUP BY ROLLUP(LeadSource, Rating)

このクエリは、LeadSource 項目と Rating 項目の組み合わせの小計を返します。GROUPING(LeadSource) は、行が LeadSource 項目の集計行であるかどうかを示し、GROUPING(Rating) は行が Rating 項目の集計行であるかどうかを示します。

次の表に、クエリ結果を示します。各行の説明をコメント列に示します。

LeadSource Rating grpLS grpRating cnt コメント
Web null 0 0 5 LeadSource = WebRating なしのリードは 5 件
Web Hot 0 0 1 LeadSource = WebRating = Hot のリードは 1 件
Web Warm 0 0 1 LeadSource = WebRating = Warm のリードは 1 件
Web null 0 1 7 LeadSource = Web のリードの小計は 7 件 (grpRating = 1 は結果が Rating 項目でグループ化されていることを示す)
Phone Inquiry null 0 0 4 LeadSource = Phone InquiryRating なしのリードは 4 件
Phone Inquiry null 0 1 4 LeadSource = Phone Inquiry のリードの小計は 4 件 (grpRating = 1 は結果が Rating 項目でグループ化されていることを示す)
Partner Referral null 0 0 4 LeadSource = Partner ReferralRating なしのリードは 4 件
Partner Referral null 0 1 4 LeadSource = Partner Referral のリードの小計は 4 件 (grpRating = 1 は結果が Rating 項目でグループ化されていることを示す)
Purchased List null 0 0 7 LeadSource = Purchased ListRating なしのリードは 7 件
Purchased List null 0 1 7 LeadSource = Purchased List のリードの小計は 7 件 (grpRating = 1 は結果が Rating 項目でグループ化されていることを示す)
null null 1 1 22 リードの総計は 22 件 (grpRating = 1grpLS = 1 はこれが総計であることを示す)

GROUP BY ROLLUP 句で指定されている項目の順序は重要です。たとえば、各 LeadSource よりも各 Rating の小計を取得する方が重要な場合���項目の順序を GROUP BY ROLLUP(Rating, LeadSource) に変更します。

ヒント