結果の並べ替えと結果数の制限

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
    • 繰り返しフィールド
    • 繰り返しフィールドの属性

結果の数を制限する

返される結果の合計数を制限するには、LIMIT 句に正の整数(1 以上。LIMIT 0 は無効)を指定します。これを結果の並べ替えと組み合わせると、「上位 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)、列挙型、プリミティブ ラッパーのサブフィールドのみをフィルタリングできます。