Сортировка и ограничение результатов

Язык запросов Google Рекламы позволяет сортировать и ограничивать строки, возвращаемые в ответах на запросы, с помощью предложений ORDER BY и LIMIT.

Сортировка результатов

Вы можете указать порядок строк в ответе, используя предложение ORDER BY, которое состоит из одной или нескольких последовательностей, разделенных запятыми:

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 дней:

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), перечисляемые или простые вложенные поля-оболочки.