Merchant Center Query Language (MCQL) to język zapytań podobny do SQL. Ty można używać MCQL z interfejsem Merchant Reports API, aby pobierania danych o skuteczności Twoich produktów i rynku, na którym konkurują.
Gramatyka
Oto opis gramatyki MCQL (w notacji wyrażeń regularnych):
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
Możesz używać tych symboli:
?
– element opcjonalny.*
oznacza 0 lub więcej.+
oznacza co najmniej 1.(xxxxxx)
oznacza grupowanie.[a-z0-9]
oznacza zakresy znaków.|
oznacza „lub”.
Uwzględnianie wielkości liter
Większość operatorów MCQL uwzględnia wielkość liter:
Operatory | Czułość wielkości liter |
---|---|
= lub != | Z uwzględnieniem wielkości liter |
(NIE) IN | Z uwzględnieniem wielkości liter |
(NIE) Podoba mi się | Z uwzględnieniem wielkości liter |
ZAWIERA (...) | Z uwzględnieniem wielkości liter |
REGEXP_MATCH | Opcjonalnie: oba |
Klauzule
Oto klauzule, do których możesz wysyłać zapytania za pomocą MCQL:
WYBIERZ
Do pobrania klauzula SELECT
pobiera rozdzieloną przecinkami listę pól.
Możesz wybrać dowolne pole z używanego widoku. Oto kilka przykładów które możesz wybrać:
W jednym żądaniu możesz przesłać zapytanie do wielu typów pól. Oto przykład:
SELECT
date,
marketingMethod,
impressions,
clicks
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
FROM
Klauzula FROM
określa tabelę, z której mają zostać pobrane dane w żądaniu. Dostępne opcje
określ tylko jedno pole w klauzuli FROM
. Klauzula FROM
jest wymagana w przypadku
wszystkich zapytań.
WHERE
Aby filtrować dane na potrzeby żądania, użyj klauzuli WHERE
. Klauzula WHERE
jest wymagany do wydajności
.
Możesz filtrować według wszystkich kryteriów
segmenty.
oraz przez dodatkowe
danych, jeśli
podajesz je w klauzuli SELECT
.
Oto przykład, który wykorzystuje parametr WHERE
do zwrócenia wyświetleń tylko z określonego miejsca
okres (sierpień):
SELECT offerId, impressions
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
Za pomocą operatora AND
możesz filtrować dane według wielu warunków w jednym zapytaniu.
Wstaw ciąg AND
między pełnymi warunkami, np. WHERE marketingMethod !=
"ADS" AND marketingMethod != "ORGANIC"
. Nie możesz używać AND
między wartościami w
pojedynczy warunek, np. WHERE marketingMethod != "ADS" AND "ORGANIC"
.
Oto przykład, który zwraca liczbę kliknięć na ofertę. Znajdą się w niej
ponad 100 kliknięć w metodzie marketingowej ADS
w miesiącu
Sierpień:
SELECT offerId, clicks
FROM ProductPerformanceView
WHERE clicks > 100
AND marketingMethod = 'ADS'
AND date BETWEEN '2020-08-01' AND '2020-08-31'
Klauzula WHERE
nie obsługuje OR
. Wielkość liter w operatorach ma znaczenie. Dla
pełną listę operatorów można znaleźć w artykule grammar.
ORDER BY (opcjonalnie)
Klauzula ORDER BY
umożliwia pobieranie wyników w określonej kolejności.
Określ zamówienie za pomocą atrybutu fieldName
, a następnie ASC
lub DESC
. Możesz złożyć zamówienie według
określone w klauzuli SELECT
w zapytaniu. ORDER BY
przyjmuje domyślnie wartość
ASC
, jeśli go nie określisz.
To zapytanie porządkuje zwrócone wiersze według liczby kliknięć, od największej wartości do najniższej wartości:
SELECT offerId, clicks
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
ORDER BY clicks DESC
W klauzuli ORDER BY
możesz określić większą liczbę pól, rozdzielając je przecinkami
z listy.
Na przykład wyniki następującego zapytania są sortowane rosnąco według:
offerId
, a potem w kolejności malejącej według liczby wyświetleń, a potem malejąco
kolejność według liczby kliknięć:
SELECT offerId, impressions, clicks
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
ORDER BY
offerId,
impressions DESC,
clicks DESC
LIMIT
Klauzula LIMIT
umożliwia określenie liczby wyników do zwrócenia.
Oto przykład, który zwraca tylko 50 wyników, nawet jeśli dostępnych jest więcej wierszy.
SELECT offerId, impressions
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
ORDER BY impressions DESC
LIMIT 50
Do obsługi długich list wyników używaj pola pageSize
.
Zakresy dat
MCQL umożliwia określenie niestandardowego lub względnego zakresu dat. Musisz użyć
Klauzula WHERE
określająca zakres date
dla wszystkich skuteczności
Inne
Daty ISO 8601(RRRR-MM-DD) możesz określić w tych formatach:
date BETWEEN '2021-01-01' AND '2021-01-31'
date >= '2021-01-01' AND date <= '2021-01-31'
Ciągi dat możesz zdefiniować przy użyciu cudzysłowów pojedynczych ('
) lub podwójnych
("
).
Krewny
Możesz określić względny zakres dat, taki jak LAST_30_DAYS
lub THIS_MONTH
,
używając DURING
zamiast BETWEEN
i AND
:
WHERE date DURING LAST_30_DAYS
Pełną listę dostępnych względnych zakresów dat znajdziesz w sekcji grammar.