Merchant Center 查詢語言 (MCQL) 是查詢語言,與 SQL 類似。您可以搭配使用 MCQL 與 Merchant Reports API,擷取產品的成效資料,以及產品在競爭的市場中。
文法
以下是 MCQL 文法參考資料 (採用規則運算式標記法):
Query -> SelectClause FromClause? WhereClause? OrderByClause? LimitClause?
SelectClause -> SELECT FieldName (, FieldName)*
FromClause -> FROM TableName
WhereClause -> WHERE Condition (AND Condition)*
OrderByClause -> ORDER BY Ordering (, Ordering)*
LimitClause -> LIMIT PositiveInteger
Condition -> FieldName Operator Value | FieldName BETWEEN Value AND Value
Operator -> = | != | > | >= | < | <= | <> | IN | NOT IN |
CONTAINS ANY | CONTAINS ALL | CONTAINS NONE | DURING |
LIKE | NOT LIKE | REGEXP_MATCH | NOT REGEXP_MATCH
Value -> Number | NumberList | String | StringList | Function
Ordering -> FieldName (ASC | DESC)?
FieldName -> [a-z] ([a-zA-Z0-9._])*
TableName -> [A-Z] ([a-zA-Z_])*
StringList -> ( String (, String)* )
NumberList -> ( Number (, Number)* )
PositiveInteger -> [1-9] ([0-9])*
Number -> -? [0-9]+ (. [0-9] [0-9]*)?
String -> (' Char* ') | (" Char* ")
Function -> LAST_14_DAYS | LAST_30_DAYS | LAST_7_DAYS |
LAST_BUSINESS_WEEK | LAST_MONTH | LAST_WEEK_MON_SUN |
LAST_WEEK_SUN_SAT | THIS_MONTH | THIS_WEEK_MON_TODAY |
THIS_WEEK_SUN_TODAY | TODAY | YESTERDAY
你可以使用下列符號:
?
代表選用元素。*
表示零或多個;+
表示一或多個。(xxxxxx)
表示分組。[a-z0-9]
代表字元範圍。|
代表「or」。
區分大小寫
大多數 MCQL 運算子會區分大小寫:
運算子 | 區分大小寫 |
---|---|
= 或 != | 區分大小寫 |
(非) 印第安納 | 區分大小寫 |
(不) LIKE | 區分大小寫 |
包含 (...) | 區分大小寫 |
REGEXP_MATCH | (選用) |
子句
以下是您可以利用 MCQL 查詢的子句:
SELECT
SELECT
子句需要以半形逗號分隔的欄位清單,
您可以從目前使用的檢視畫面中選取任何欄位。以下提供幾個可選取的欄位範例:
您可以在單一要求中查詢多個欄位類型,範例如下:
SELECT
date,
marketingMethod,
impressions,
clicks
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
FROM
FROM
子句指定要在要求中擷取資料的資料表。您只能在 FROM
子句中指定一個欄位。所有查詢都必須使用 FROM
子句。
WHERE
使用 WHERE
子句篩選要求的資料。效能查詢必須使用 WHERE
子句。您可以依所有區隔欄位或其他metrics欄位進行篩選 (如果在 SELECT
子句中指定這些欄位)。
以下範例使用 WHERE
,只傳回指定時間範圍 (8 月的月份) 的曝光次數:
SELECT offerId, impressions
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
您可以在單一查詢中使用 AND
運算子依多個條件進行篩選。在完整條件之間使用 AND
,例如:WHERE marketingMethod !=
"ADS" AND marketingMethod != "ORGANIC"
。您無法在單一條件中的值之間使用 AND
,例如:WHERE marketingMethod != "ADS" AND "ORGANIC"
。
以下範例會在 8 月期間,傳回每項優惠 (ADS
行銷方法的點擊次數超過 100 次) 的點擊次數:
SELECT offerId, clicks
FROM ProductPerformanceView
WHERE clicks > 100
AND marketingMethod = 'ADS'
AND date BETWEEN '2020-08-01' AND '2020-08-31'
WHERE
子句不支援 OR
。運算子須區分大小寫。如需運算子的完整清單,請參閱 grammar。
ORDER BY (選用)
ORDER BY
子句可讓您按照指定順序擷取結果。
請先依序使用 fieldName
和 ASC
或 DESC
指定順序。您只能依照查詢 SELECT
子句中指定的欄位排序。如果沒有指定,ORDER BY
會預設為 ASC
。
下列查詢會按照點擊次數從高到低排序傳回的資料列:
SELECT offerId, clicks
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
ORDER BY clicks DESC
您可以使用以半形逗號分隔的清單,在 ORDER BY
子句中指定多個欄位。
舉例來說,下列查詢的結果會依 offerId
遞增排序,再根據曝光次數遞減排序,然後依照點擊次數遞減排序:
SELECT offerId, impressions, clicks
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
ORDER BY
offerId,
impressions DESC,
clicks DESC
LIMIT
LIMIT
子句可讓您指定要傳回的結果數量。
在以下範例中,即使有更多資料列可用,系統也只會傳回 50 筆結果。
SELECT offerId, impressions
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
ORDER BY impressions DESC
LIMIT 50
使用 pageSize
欄位處理較長的結果清單。
日期範圍
MCQL 可讓您指定自訂或相對日期範圍。您必須使用 WHERE
子句指定所有效能查詢的 date
範圍。
自訂
您可以指定 ISO 8601(YYYY-MM-DD) 日期,格式為:
date BETWEEN '2021-01-01' AND '2021-01-31'
date >= '2021-01-01' AND date <= '2021-01-31'
您可以使用單引號 ('
) 或雙引號 ("
) 定義日期字串。
親戚
您可以使用 DURING
(而非 BETWEEN
和 AND
) 來指定相對日期範圍,例如 LAST_30_DAYS
或 THIS_MONTH
:
WHERE date DURING LAST_30_DAYS
如需可用相對日期範圍的完整清單,請參閱圖表。