판매자 센터 쿼리 언어 (MCQL)는 SQL과 유사한 쿼리 언어입니다. 판매자 보고서 API와 함께 MCQL을 사용하여 제품 및 경쟁 시장의 실적 데이터를 가져올 수 있습니다.
문법
다음은 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]
는 문자 범위를 나타냅니다.|
는 '또는'을 나타냅니다.
대소문자 구분
대부분의 MCQL 연산자는 대소문자를 구분합니다.
연산자 | 대소문자 구분 |
---|---|
= 또는 != | 대소문자 구분 |
(NOT) IN | 대소문자 구분 |
(NOT) LIKE | 대소문자 구분 |
CONTAINS (...) | 대소문자 구분 |
REGEXP_MATCH | 둘 다(선택사항) |
조항
MCQL로 쿼리할 수 있는 절은 다음과 같습니다.
SELECT
SELECT
절은 가져올 필드의 쉼표로 구분된 목록을 사용합니다.
사용 중인 뷰에서 어떤 필드든 선택할 수 있습니다. 선택할 수 있는 필드의 예는 다음과 같습니다.
단일 요청에서 여러 필드 유형을 쿼리할 수 있습니다. 예를 들면 다음과 같습니다.
SELECT
date,
marketing_method,
impressions,
clicks
FROM product_performance_view
WHERE date BETWEEN '2023-08-01' AND '2023-08-31'
FROM
FROM
절은 요청에서 데이터를 가져올 테이블을 지정합니다. FROM
절에는 하나의 필드만 지정할 수 있습니다. 모든 쿼리에 FROM
절이 필요합니다.
WHERE
WHERE
절을 사용하여 요청에 대한 데이터를 필터링합니다. WHERE
절은 성능 쿼리에 필요합니다.
모든 세그먼트 필드와 추가 측정항목 필드(SELECT
절에서 지정하는 경우)를 기준으로 필터링할 수 있습니다.
다음은 WHERE
를 사용하여 지정된 기간 (8월)의 노출만 반환하는 예입니다.
SELECT offer_id, impressions
FROM product_performance_view
WHERE date BETWEEN '2023-08-01' AND '2023-08-31'
AND
연산자를 사용하여 단일 쿼리에서 여러 조건으로 필터링할 수 있습니다.
완전한 조건 간에 AND
를 사용합니다(예: WHERE marketing_method !=
"ADS" AND marketing_method != "ORGANIC"
). 단일 조건의 값 간에 AND
를 사용할 수 없습니다(예: WHERE marketing_method != "ADS" AND
"ORGANIC"
).
다음은 8월에 ADS
마케팅 방법의 클릭수가 100회 이상인 제품당 클릭수를 반환하는 예입니다.
SELECT offer_id, clicks
FROM product_performance_view
WHERE clicks > 100
AND marketing_method = 'ADS'
AND date BETWEEN '2023-08-01' AND '2023-08-31'
WHERE
절은 OR
을 지원하지 않습니다. 연산자는 대소문자를 구분합니다. 연산자의 전체 목록은 문법을 참고하세요.
ORDER BY (선택사항)
ORDER BY
절을 사용하면 지정된 순서로 결과를 검색할 수 있습니다.
field_name
, ASC
또는 DESC
를 사용하여 순서를 지정합니다. 쿼리의 SELECT
절에 지정된 필드로만 정렬할 수 있습니다. 지정하지 않으면 ORDER BY
의 기본값은 ASC
입니다.
다음 쿼리는 반환된 행을 클릭수 기준으로 가장 높은 순서에서 가장 낮은 순서로 정렬합니다.
SELECT offer_id, clicks
FROM product_performance_view
WHERE date BETWEEN '2023-08-01' AND '2023-08-31'
ORDER BY clicks DESC
쉼표로 구분된 목록을 사용하여 ORDER BY
절에 여러 필드를 지정할 수 있습니다.
예를 들어 다음 쿼리의 결과는 offer_id
를 기준으로 오름차순으로 정렬된 다음 노출수를 기준으로 내림차순으로 정렬된 다음 클릭수를 기준으로 내림차순으로 정렬됩니다.
SELECT offer_id, impressions, clicks
FROM product_performance_view
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
ORDER BY
offer_id,
impressions DESC,
clicks DESC
LIMIT
LIMIT
절을 사용하면 반환할 결과 수를 지정할 수 있습니다.
다음은 더 많은 행을 사용할 수 있더라도 결과를 50개만 반환하는 예입니다.
SELECT offer_id, impressions
FROM product_performance_view
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'
날짜 문자열은 작은따옴표 ('
) 또는 큰따옴표("
)로 정의할 수 있습니다.
상대적
BETWEEN
및 AND
대신 DURING
를 사용하여 LAST_30_DAYS
또는 THIS_MONTH
와 같은 상대 날짜 범위를 지정할 수 있습니다.
WHERE date DURING LAST_30_DAYS
사용 가능한 상대 기간의 전체 목록은 문법을 참고하세요.