Język zapytań Merchant Center (MCQL) to język zapytań podobny do języka SQL. Możesz użyć MCQL w interfejsie Merchant Reports API, aby pobierać dane o skuteczności Twoich produktów i rynku, na którym konkurują.
Gramatyka
Oto informacje o gramatyce MCQL (w zapisie z wyrażeniami regularnymi):
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żyć tych symboli:
?
oznacza element opcjonalny.*
oznacza 0 lub więcej;+
oznacza 1 lub więcej.(xxxxxx)
oznacza grupę.[a-z0-9]
oznacza zakresy znaków.|
oznacza „lub”.
Uwzględnianie wielkości liter
W większości operatorów MCQL wielkość liter ma znaczenie:
Operatory | Czułość wielkości liter |
---|---|
= lub != | Z uwzględnieniem wielkości liter |
(NIE) IN | Z uwzględnieniem wielkości liter |
(NIE) LUBIĘ | 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:
SELECT
Klauzula SELECT
wymaga pobrania listy pól oddzielonych przecinkami.
Możesz wybrać dowolne pole w używanym widoku. Oto kilka przykładowych pól, które możesz wybrać:
Możesz przesłać zapytanie dotyczące wielu typów pól w jednym żądaniu. 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 w żądaniu mają zostać pobrane dane. W klauzuli FROM
możesz określić tylko jedno pole. Klauzula FROM
jest wymagana we wszystkich zapytaniach.
WHERE
Do filtrowania danych na potrzeby żądania używaj klauzuli WHERE
. Klauzula WHERE
jest wymagana w przypadku zapytań dotyczących wydajności.
Możesz filtrować według wszystkich pól segmentów lub według dodatkowych pól metrics, jeśli określisz je w klauzuli SELECT
.
Oto przykład, w którym funkcja WHERE
zwraca wyświetlenia tylko z wybranego okresu (sierpnia):
SELECT offerId, impressions
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
Za pomocą operatora AND
możesz filtrować w jednym zapytaniu według wielu warunków.
Między pełnymi warunkami użyj operatora AND
, np.: WHERE marketingMethod !=
"ADS" AND marketingMethod != "ORGANIC"
. Nie możesz używać operatora AND
między wartościami w jednym warunku, np. WHERE marketingMethod != "ADS" AND "ORGANIC"
.
Oto przykład, który zwraca liczbę kliknięć na ofertę, gdy w przypadku metody marketingowej ADS
odnotowano ponad 100 kliknięć w sierpniu:
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 parametru OR
. W operatorach wielkość liter ma znaczenie. Pełną listę operatorów znajdziesz w sekcji grammar.
ORDER BY (opcjonalnie)
Klauzula ORDER BY
umożliwia pobieranie wyników w określonej kolejności.
Określ kolejność za pomocą pola fieldName
, a następnie ASC
lub DESC
. Możesz sortować produkty tylko według pól określonych w klauzuli SELECT
zapytania. Jeśli nie określisz wartości, ORDER BY
przyjmuje domyślnie wartość ASC
.
To zapytanie porządkuje zwracane wiersze według liczby kliknięć, od największej do najmniejszej:
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ć wiele pól za pomocą listy rozdzielanej przecinkami.
Na przykład wyniki tego zapytania są posortowane w kolejności rosnącej według liczby kliknięć: offerId
, a następnie malejąco według liczby wyświetleń, a następnie malejąco 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.
W tym przykładzie zwracamy 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 pozwala określić niestandardowy lub względny zakres dat. Aby określić zakres date
dla wszystkich zapytań dotyczących wydajności, musisz używać klauzuli WHERE
.
Inne
Daty w formacie ISO 8601(RRRR-MM-DD) możesz podać w tych formatach:
date BETWEEN '2021-01-01' AND '2021-01-31'
date >= '2021-01-01' AND date <= '2021-01-31'
Ciągi daty możesz definiować w cudzysłowach pojedynczych ('
) lub podwójnych ("
).
Krewny
Możesz określić względny zakres dat, np. LAST_30_DAYS
lub THIS_MONTH
, używając właściwości DURING
zamiast BETWEEN
i AND
:
WHERE date DURING LAST_30_DAYS
Pełną listę dostępnych względnych zakresów dat znajdziesz w sekcji gramatyka.