查詢結構

指標和區隔欄位的查詢可傳送至 reports.search 方法。如要在 Merchant Center 查詢語言中建構查詢,請先使用語言文法撰寫查詢。查詢由多個子句組成:

  • SELECT
  • FROM
  • WHERE
  • ORDER BY
  • LIMIT

子句會使用欄位名稱資料表名稱運算子條件排序,協助您選取所需資料。將這些參數合併為單一查詢後,即可使用 Google Content API for Shopping 提出要求。讓我們來看看如何使用各個子句。

子句

SELECT

SELECT 子句會指定在要求中擷取的欄位組合。SELECT 會採用以半形逗號分隔的區段欄位和指標清單,並在回應中傳回值。查詢中必須使用 SELECT 子句。

以下是從特定資料表選取點擊指標的查詢範例:

SELECT
  metrics.clicks
FROM MerchantPerformanceView
WHERE segments.date BETWEEN 2020-08-01 AND 2020-08-31

您也可以在單一要求中查詢不同欄位類型:

SELECT
  segments.date,
  segments.program,
  metrics.impressions,
  metrics.clicks
FROM MerchantPerformanceView
WHERE segments.date BETWEEN 2020-08-01 AND 2020-08-31
  • 區隔欄位

    • segments.date
    • segments.program
  • 指標

    • metrics.impressions
    • metrics.clicks

由於 SELECT 子句有以下限制,因此不允許使用某些欄位:

  • 查詢片段欄位時,沒有至少一個指標欄位。

如需上述條件的相關資訊,請參閱參考文件。

FROM

FROM 子句會指定要從要求中擷取資料的資料表。FROM 子句中的表格會定義指定查詢的所有其他子句可使用的欄位。FROM 子句中只能指定單一資料表。目前僅支援 MerchantPerformanceView 資料表。在 reports 服務上對 search 方法提出查詢時,必須使用 FROM 子句。

WHERE

WHERE 子句會指定在為要求篩選資料時要套用的條件。使用 WHERE 子句時,可以使用 AND 分隔一或多個條件。每個條件都應採用以下格式:field_name Operator value。任何區隔欄位都可以用於 WHERE 子句,但指標欄位必須在 SELECT 子句中指定,才能用於 WHERE 子句。WHERE 子句為查詢中必要的條件,因為您必須一律指定要傳回成效資料的日期範圍。

以下是使用 WHERE 傳回特定時間範圍內指標的範例:

SELECT
  segments.offer_id,
  metrics.impressions
FROM MerchantPerformanceView
WHERE segments.date BETWEEN 2020-08-01 AND 2020-08-31

您可以結合多個條件來篩選資料。這個範例會傳回 SHOPPING_ADS 計畫中每項商品的點擊次數,其中點擊次數 > 100 次,且在指定的 30 天期間內。

SELECT
  segments.offer_id,
  segments.program,
  metrics.clicks
FROM MerchantPerformanceView
WHERE metrics.clicks > 100
  AND segments.program = SHOPPING_ADS
  AND segments.date BETWEEN 2020-08-01 AND 2020-08-31;

在下列查詢中,您會發現已選取 segments.date。無論您是否選取 segments.date,都必須在 WHERE 子句中提供有限的日期範圍,才能擷取成效資料。

SELECT
  segments.date,
  metrics.clicks
FROM MerchantPerformanceView
WHERE segments.date BETWEEN 2020-08-01 AND 2020-08-31

篩選時,請務必留意運算子的大小寫敏感度。

如需完整的運算子清單,請參閱語言文法

ORDER BY

ORDER BY 子句會指定要傳回結果的順序。這可讓您依據欄位名稱,將資料依遞增或遞減順序排列。每個排序都會指定為 field_name,後面接著 ASCDESC。如果未指定 ASCDESC,則訂單預設為 ASCORDER BY 子句只能使用 SELECT 子句中指定的欄位。ORDER BY 子句在查詢中為選用

下列查詢會依點擊次數從高到低排序傳回的資料列:

SELECT
  segments.offer_id,
  metrics.clicks
FROM MerchantPerformanceView
WHERE segments.date BETWEEN 2020-08-01 AND 2020-08-31
ORDER BY metrics.clicks DESC

您可以使用逗號分隔的清單,在 ORDER BY 子句中指定多個欄位。排序順序會與查詢中指定的順序相同。舉例來說,在這個查詢中,系統會依 offer_id 遞增排序,然後依曝光次數遞減排序,再依點擊次數遞減排序:

SELECT
  segments.offer_id,
  metrics.impressions,
  metrics.clicks
FROM MerchantPerformanceView
WHERE segments.date BETWEEN 2020-08-01 AND 2020-08-31
ORDER BY
  segments.offer_id,
  metrics.impressions DESC,
  metrics.clicks DESC

LIMIT

您可以使用 LIMIT 子句指定要傳回的結果數量。如果您只想查看摘要,這項功能就很實用。

舉例來說,LIMIT 可用於限制下列查詢的結果總數:

SELECT
  segments.program,
  segments.offer_id,
  metrics.impressions
FROM MerchantPerformanceView
WHERE segments.date BETWEEN 2020-08-01 AND 2020-08-31
ORDER BY metrics.impressions DESC
LIMIT 50