Merchant Center Query Language

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.