Google 広告クエリ言語では、ORDER BY 句と LIMIT 句を使用して、クエリ レスポンスで返される行を並べ替えたり、上限を設定したりできます。
結果を並べ替える
レスポンスの行の順序は、ORDER BY 句を使用して指定できます。この句は、1 つ以上のカンマ区切りのシーケンスで構成されます。
FieldName (ASC | DESC)?
フィールド名の後に ASC または DESC を指定しない場合、Google Ads API はデフォルトで ASC になります。ORDER BY 句を完全に省略すると、返される行の順序は非決定的になります。
次の ORDER BY 句は、キャンペーン単位のレポートをインプレッション数の降順、キャンペーン名の昇順で並べ替えます。
ORDER BY metrics.impressions DESC, campaign.name ASC
- 選択されていないリソースの属性別
- 選択されていない指標別
- 選択されていないセグメント別
- 次のタイプのフィールドの場合:
MESSAGE- 繰り返しフィールド
- 繰り返しフィールドの属性
結果の数を制限する
返される結果の合計数を制限するには、正の整数(1 以上。LIMIT 0 は無効)を指定して LIMIT 句を使用します。これを結果の並べ替えと組み合わせることで、「上位 N 件」のレポートを作成できます。たとえば、過去 30 日間のインプレッション数が最も多い 5 つのキャンペーンを含むレポートを作成できます。
SELECT
campaign.id,
campaign.name,
metrics.impressions
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
ORDER BY metrics.impressions DESC
LIMIT 5
結果をフィルタする
WHERE フィルタを ORDER BY および LIMIT と組み合わせる場合は、次のフィルタリングの制限事項に注意してください。
- 「コア」日付セグメント フィールド(
segments.date、segments.week、segments.month、segments.quarter、segments.year)を除き、セグメントを選択せずにフィルタリングすることはできません。 - 複合
MESSAGEフィールド(Int64ValueやStringValueなどのプリミティブ ラッパー メッセージを除く)で直接フィルタすることはできません。代わりに、プリミティブ スカラー(int64、string、bool)または列挙型サブフィールドでフィルタします。 - 繰り返しフィールドの複合
MESSAGE属性でフィルタリングはできません。プリミティブ スカラー(int64、string、bool)、列挙型、プリミティブ ラッパー サブフィールドのみをフィルタできます。