Merchant Center Query Language

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] หมายถึงช่วงอักขระ
  • | ย่อมาจาก "or"

การคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่

โอเปอเรเตอร์ MCQL ส่วนใหญ่จะคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ ดังนี้

โอเปอเรเตอร์ การพิจารณาตัวพิมพ์เล็กและตัวพิมพ์ใหญ่
= หรือ != พิจารณาตัวพิมพ์เล็กและใหญ่
(ไม่ใช่) ใน พิจารณาตัวพิมพ์เล็กและใหญ่
(ไม่ใช่) ชอบ พิจารณาตัวพิมพ์เล็กและใหญ่
มี (...) พิจารณาตัวพิมพ์เล็กและใหญ่
REGEXP_MATCH เลือกทั้ง 2 อย่าง

ข้อกำหนด

วลีที่คุณสามารถค้นหาด้วย MCQL มีดังนี้

เลือก

คำสั่ง SELECT จะใช้รายการช่องที่คั่นด้วยจุลภาคเพื่อเรียกข้อมูล

คุณสามารถเลือกฟิลด์ใดก็ได้จากมุมมองที่คุณใช้อยู่ ต่อไปนี้คือตัวอย่างของ ฟิลด์ที่คุณสามารถเลือกได้:

คุณค้นหาช่องได้หลายประเภทในคำขอเดียว เช่น

SELECT
  date,
  marketingMethod,
  impressions,
  clicks
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'

จาก

อนุประโยค FROM ระบุตารางที่จะดึงข้อมูลในคำขอ คุณสามารถ ระบุเพียงฟิลด์เดียวในวรรคคำสั่ง FROM ต้องมีวรรค FROM สำหรับ คำค้นหาทั้งหมด

ที่ไหน

ใช้คำสั่ง WHERE เพื่อกรองข้อมูลสำหรับคำขอของคุณ วรรค WHERE จำเป็นต้องระบุสำหรับประสิทธิภาพ การค้นหา คุณกรองรายการตาม กลุ่ม และเพิ่มเติม เมตริก หาก ที่คุณระบุในวรรค SELECT

ต่อไปนี้คือตัวอย่างที่ใช้ WHERE เพื่อแสดงผลจาก ระยะเวลา (เดือนสิงหาคม):

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"

นี่คือตัวอย่างที่แสดงจำนวนคลิกต่อข้อเสนอพิเศษ จำนวนคลิกมากกว่า 100 ครั้งสำหรับวิธีทางการตลาดADSระหว่างเดือน สิงหาคม:

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'

คุณกำหนดสตริงวันที่ได้ด้วยเครื่องหมายคำพูดเดี่ยว (') หรือเครื่องหมายคำพูดคู่ (")

ญาติ

คุณระบุช่วงวันที่สัมพัทธ์ได้ เช่น LAST_30_DAYS หรือ THIS_MONTH โดยใช้ DURING แทน BETWEEN และ AND:

WHERE date DURING LAST_30_DAYS

ดูไวยากรณ์สำหรับรายการช่วงวันที่สัมพัทธ์ทั้งหมดที่ใช้ได้