Merchant Center Sorgu Dili (MCQL), SQL'e benzer bir sorgu dilidir. Siz MCQL'yi Merchant Reports API ile birlikte kullanarak ürünleriniz ve rekabet ettikleri pazar hakkında performans verilerini alabilirsiniz.
Dilbilgisi
MCQL dil bilgisi referansı şu şekildedir (normal ifade gösterimiyle):
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
Şu simgeleri kullanabilirsiniz:
?
, isteğe bağlı bir öğeyi belirtir.*
, sıfır veya daha fazla anlamına gelir;+
bir veya daha fazla anlamına gelir.(xxxxxx)
bir gruplandırmayı gösterir.[a-z0-9]
, karakter aralıklarını ifade eder.|
, "veya" anlamına gelir.
Büyük/küçük harfe duyarlılık
Çoğu MCQL operatörü büyük/küçük harfe duyarlıdır:
Operatörler | Büyük/Küçük Harf Duyarlılığı |
---|---|
= veya != | Büyük/küçük harfe duyarlı |
İÇİNDE (DEĞİL) | Büyük/küçük harfe duyarlı |
(DEĞİL) BEĞENİ | Büyük/küçük harfe duyarlı |
İÇERİR (...) | Büyük/küçük harfe duyarlı |
REGEXP_MATCH | Her İkisi de İsteğe Bağlı |
Maddeler
MCQL ile sorgulayabileceğiniz ifadeler şunlardır:
SEÇ
SELECT
yan tümcesi, almak için alanların virgülle ayrılmış bir listesini alır.
Kullandığınız görünümdeki herhangi bir alanı seçebilirsiniz. Elektronik tablo kullanarak yapılmış şu alanları seçebilirsiniz:
-
impressions
clicks
-
date
marketingMethod
Tek bir istekte birden fazla alan türünü sorgulayabilirsiniz. Aşağıda bununla ilgili bir örnek verilmiştir:
SELECT
date,
marketingMethod,
impressions,
clicks
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
FROM
FROM
ifadesi, istekte verilerin alınacağı tabloyu belirtir. Şunları yapabilirsiniz:
FROM
yan tümcesinde yalnızca bir alan belirtin. FROM
ifadesi şunun için gereklidir:
tüm sorgularda gösterilir.
WHERE
İsteğinize göre verileri filtrelemek için WHERE
ifadesini kullanın. WHERE
ifadesi
performans için gereklidir
sorgu değerleridir.
Tümüne göre filtreleme yapabilirsiniz
segments alanlarını temel alarak
ve ek olarak
metrics alanlarını
SELECT
ifadesini kullanarak belirtmeniz gerekir.
Aşağıda, yalnızca belirli bir öğeden gösterim döndürmek için WHERE
etiketinin kullanıldığı bir örnek verilmiştir.
dönem (Ağustos ayı):
SELECT offerId, impressions
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
AND
operatörünü kullanarak tek bir sorguda birden fazla koşula göre filtreleme yapabilirsiniz.
Tam koşullar arasında AND
değerini kullanın, örneğin: WHERE marketingMethod !=
"ADS" AND marketingMethod != "ORGANIC"
. AND
yönergesini,
tek koşul, örneğin: WHERE marketingMethod != "ADS" AND "ORGANIC"
.
Aşağıda, teklif başına tıklama sayısını döndüren ve
ADS
pazarlama yöntemi için aylık 100'den fazla tıklama
Ağustos:
SELECT offerId, clicks
FROM ProductPerformanceView
WHERE clicks > 100
AND marketingMethod = 'ADS'
AND date BETWEEN '2020-08-01' AND '2020-08-31'
WHERE
ifadesi, OR
öğesini desteklemiyor. Operatörler büyük/küçük harfe duyarlıdır. Örneğin,
Operatörlerin tam listesi için grammar bölümünü inceleyin.
ORDER BY (isteğe bağlı)
ORDER BY
ifadesi, sonuçları belirli bir sırada almanızı sağlar.
Sırayı fieldName
, ardından ASC
veya DESC
ile belirtin. Yalnızca şuna göre sipariş verebilirsiniz:
alanları, sorgunuzun SELECT
ifadesinde belirtilmiş olmalıdır. ORDER BY
varsayılan olarak ayarlandı
Belirtmezseniz ASC
.
Aşağıdaki sorgu, döndürülen satırları tıklama sayısına göre, en yüksekten en düşüğe:
SELECT offerId, clicks
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
ORDER BY clicks DESC
Virgülle ayrılmış değer kullanarak ORDER BY
yan tümcesinde birden çok alan belirtebilirsiniz
liste'ye dokunun.
Örneğin, aşağıdaki sorgunun sonuçları aşağıdaki ölçütlere göre artan düzende sıralanır:
offerId
, ardından gösterim sayısına göre azalan sırada, daha sonra azalan sırada
tıklama sayısına göre sırala:
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
ifadesi, döndürülecek sonuç sayısını belirtmenizi sağlar.
Aşağıda, daha fazla satır mevcut olsa bile yalnızca 50 sonuç döndüren bir örnek verilmiştir.
SELECT offerId, impressions
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
ORDER BY impressions DESC
LIMIT 50
Uzun sonuç listelerini işlemek için pageSize
alanını kullanın.
Tarih aralıkları
MCQL, özel veya göreli bir tarih aralığı belirtmenize olanak tanır. Şunu kullanmanız gerekir:
Tüm performanslar için date
aralığını belirtmek üzere WHERE
deyimi
daha fazla bilgi edinin.
Özel
ISO 8601(YYYY-AA-GG) tarihlerini aşağıdaki biçimlerde belirtebilirsiniz:
date BETWEEN '2021-01-01' AND '2021-01-31'
date >= '2021-01-01' AND date <= '2021-01-31'
Tarih dizelerini tek tırnak ('
) veya çift tırnak ile tanımlayabilirsiniz.
("
).
Akraba
LAST_30_DAYS
veya THIS_MONTH
gibi göreli bir tarih aralığı belirtebilirsiniz.
BETWEEN
ve AND
yerine DURING
kullanarak:
WHERE date DURING LAST_30_DAYS
Kullanılabilir göreli tarih aralıklarının tam listesi için dilbilgisine bakın.