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 運算子皆區分大小寫:
運算子 | 區分大小寫 |
---|---|
= 或 != | 區分大小寫 |
(非) 印第安納 | 區分大小寫 |
(非) 喜歡 | 區分大小寫 |
包含 (...) | 區分大小寫 |
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"
。
以下範例會傳回每個商品的點擊次數
ADS
行銷方式的廣告累積超過 100 次點擊,在該月份的
8 月:
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
子句中指定多個欄位,並以半形逗號分隔
請參考閱讀清單,進一步瞭解
如何選擇 Kubeflow Pipelines SDK 或 TFX
舉例來說,下列查詢的結果會以遞增順序排序,
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'
您可以使用單引號 ('
) 或雙引號定義日期字串
("
)。
相對時間
您可以指定相對日期範圍,例如 LAST_30_DAYS
或 THIS_MONTH
使用 DURING
,而不是 BETWEEN
和 AND
:
WHERE date DURING LAST_30_DAYS
如需可用相對日期範圍的完整清單,請參閱「grammar」一文。