Merchant Center Query Language (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
คุณสามารถใช้สัญลักษณ์ต่อไปนี้
?ระบุองค์ประกอบที่ไม่บังคับ*หมายถึง 0 รายการขึ้นไป ส่วน+หมายถึง 1 รายการขึ้นไป(xxxxxx)ระบุการจัดกลุ่ม[a-z0-9]หมายถึงช่วงอักขระ|หมายถึง "หรือ"
การพิจารณาตัวพิมพ์เล็กและตัวพิมพ์ใหญ่
โอเปอเรเตอร์ส่วนใหญ่ของ MCQL คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่
| โอเปอเรเตอร์ | การพิจารณาตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ |
|---|---|
| = หรือ != | คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ |
| (NOT) IN | คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ |
| (NOT) LIKE | คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ |
| CONTAINS (...) | คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ |
| REGEXP_MATCH | ทั้ง 2 แบบ (ไม่บังคับ) |
อนุประโยค
ต่อไปนี้คืออนุประโยคที่คุณค้นหาได้ด้วย MCQL
SELECT
อนุประโยค SELECT รับรายการฟิลด์ที่คั่นด้วยคอมมาเพื่อดึงข้อมูล
คุณสามารถเลือกฟิลด์ใดก็ได้จากมุมมองที่ใช้อยู่ ตัวอย่างฟิลด์ที่คุณเลือกได้มีดังนี้
คุณสามารถค้นหาฟิลด์ได้หลายประเภทในคำขอเดียว ตัวอย่าง
SELECT
date,
marketing_method,
impressions,
clicks
FROM product_performance_view
WHERE date BETWEEN '2023-08-01' AND '2023-08-31'
FROM
อนุประโยค FROM ระบุตารางที่จะดึงข้อมูลในคำขอ คุณระบุฟิลด์ได้เพียงฟิลด์เดียวในอนุประโยค FROM ต้องมีอนุประโยค FROM ในการค้นหาทั้งหมด
WHERE
ใช้อนุประโยค WHERE เพื่อกรองข้อมูลสำหรับคำขอ ต้องมีอนุประโยค WHERE
ในการค้นหาประสิทธิภาพ
คุณสามารถกรองตามฟิลด์
กลุ่มทั้งหมด
และตามฟิลด์
เมตริกเพิ่มเติมหาก
ระบุไว้ในอนุประโยค SELECT
ตัวอย่างที่ใช้ WHERE เพื่อแสดงผลการแสดงผลจากช่วงเวลาที่ระบุเท่านั้น (เดือนสิงหาคม)
SELECT offer_id, impressions
FROM product_performance_view
WHERE date BETWEEN '2023-08-01' AND '2023-08-31'
คุณสามารถกรองตามเงื่อนไขหลายรายการในการค้นหาเดียวด้วยโอเปอเรเตอร์ AND
ใช้ AND ระหว่างเงื่อนไขที่สมบูรณ์ เช่น WHERE marketing_method !=
"ADS" AND marketing_method != "ORGANIC" คุณใช้ AND ระหว่างค่าใน
เงื่อนไขเดียวไม่ได้ เช่น WHERE marketing_method != "ADS" AND
"ORGANIC"
ตัวอย่างที่แสดงจำนวนคลิกต่อข้อเสนอ โดยมีคลิกมากกว่า 100 ครั้งสำหรับวิธีทำการตลาด ADS ในช่วงเดือนสิงหาคม
SELECT offer_id, clicks
FROM product_performance_view
WHERE clicks > 100
AND marketing_method = 'ADS'
AND date BETWEEN '2023-08-01' AND '2023-08-31'
อนุประโยค WHERE ไม่รองรับ OR โอเปอเรเตอร์คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ ดูรายการโอเปอเรเตอร์ทั้งหมดได้ที่ไวยากรณ์
ORDER BY (ไม่บังคับ)
อนุประโยค ORDER BY ช่วยให้คุณดึงข้อมูลผลลัพธ์ตามลำดับที่ระบุได้
ระบุลำดับตาม field_name จากนั้นระบุ ASC หรือ DESC คุณจะจัดเรียงตามฟิลด์ที่ระบุไว้ในอนุประโยค SELECT ของการค้นหาเท่านั้น ORDER BY จะเป็น ASC โดยค่าเริ่มต้นหากคุณไม่ระบุ
การค้นหาต่อไปนี้จะจัดเรียงแถวที่แสดงผลตามจำนวนการคลิกจากมากไปน้อย
SELECT offer_id, clicks
FROM product_performance_view
WHERE date BETWEEN '2023-08-01' AND '2023-08-31'
ORDER BY clicks DESC
คุณสามารถระบุฟิลด์หลายรายการในอนุประโยค ORDER BY โดยใช้รายการที่คั่นด้วยคอมมา
ตัวอย่างเช่น ผลลัพธ์ของการค้นหาต่อไปนี้จะจัดเรียงตามลำดับจากน้อยไปมากตาม offer_id จากนั้นจัดเรียงตามลำดับจากมากไปน้อยตามจำนวนการแสดงผล แล้วจัดเรียงตามลำดับจากมากไปน้อยตามจำนวนคลิก
SELECT offer_id, impressions, clicks
FROM product_performance_view
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
ORDER BY
offer_id,
impressions DESC,
clicks DESC
LIMIT
อนุประโยค LIMIT ช่วยให้คุณระบุจำนวนผลลัพธ์ที่จะแสดงได้
ตัวอย่างที่แสดงผลลัพธ์เพียง 50 รายการ แม้ว่าจะมีแถวมากกว่านั้นก็ตาม
SELECT offer_id, impressions
FROM product_performance_view
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
ดูรายการช่วงวันที่แบบสัมพัทธ์ทั้งหมดที่พร้อมใช้งานได้ที่ ไวยากรณ์