ShopifyQL 쿼리 편집기 사용
새로운 Shopify 분석과 함께 ShopifyQL을 사용하면 자체 비즈니스 데이터베이스를 탐색하고 비즈니스에 대한 보다 심층적인 이해를 제공하는 데이터를 검색할 수 있습니다.
ShopifyQL 또는 Shopify 쿼리 언어는 상거래를 위해 구축된 Shopify의 쿼리 언어입니다. 쿼리 언어는 데이터베이스에서 데이터를 요청하고 검색하는 데 사용됩니다. 스토어의 데이터는 정의된 열과 행으로 구조화된 데이터베이스 테이블에 저장됩니다. 열은 포함된 정보 유형(예: 판매액)을 정의하고, 행은 데이터 유형의 실제 값(예: 판매액 $2,450 USD)을 지정합니다.
의미 있는 형식으로 데이터를 검색하려면 데이터베이스에 쿼리를 제출해야 합니다. 쿼리는 특정 데이터를 답변으로 요구하는 질문으로, 키워드와 해당 매개 변수로 구성됩니다. 특정 매개 변수와 여러 키워드를 조합하여 쿼리를 작성합니다. 쿼리를 작성하고 나면 쿼리를 실행하여 보고서를 받을 수 있습니다.
이 페이지의 정보
용어집
기간 | 정의 |
---|---|
치수 | 데이터를 분류하여 더욱 명확하게 표시될 수 있도록 데이터를 분류하는 속성입니다. 치수의 일반적인 예로는 시간, 제품, 위치가 있습니다. 치수는 ShopifyQL에서 매개 변수로 사용됩니다. |
키워드 | 쿼리를 지시하는 명령 역할을 하는 ShopifyQL 구문입니다. |
메트릭 | 데이터의 정량적 측정입니다. 메트릭의 일반적인 예로는 총 판매액, 주문 수, 총 수익이 있습니다. |
매개 변수 | 쿼리에 포함될 데이터베이스 요소나 세부 정보를 식별하는 ShopifyQL 구문입니다. |
연산자 | 쿼리의 일부분으로 사용되는 예약된 단어나 문자입니다. 예로는 STARTS WITH , >= 또는 last_week 가 있습니다. |
ShopifyQL 구문
ShopifyQL을 사용하여 유효한 보고서 쿼리를 만들 때는 다음 요구 사항을 충족해야 합니다.
- 전체 쿼리를 한 줄에 배치하거나 별도의 줄에 배치할 수 있습니다.
- 하나 이상의
FROM
및SHOW
키워드를 적절한 매개 변수와 함께 포함해야 합니다. 다른 모든 키워드와 매개 변수는 선택 사항입니다. - 쿼리의 모든 키워드는 다음 순서로 포함되어야 합니다.
-
FROM
-
SHOW
-
WHERE
-
GROUP BY
-
WITH
TOTALS
,GROUP_TOTALS
,PERCENT_CHANGE
-
TIMESERIES
-
HAVING
-
SINCE
&UNTIL
, 또는DURING
-
COMPARE TO
& 필요 시UNTIL
-
ORDER BY
-
LIMIT
-
VISUALIZE
&TYPE
-
다음은 올바른 구문을 사용하여 쿼리로 작성된 ShopifyQL의 예입니다. 키워드는 굵게 표시되어 있고 해당 매개 변수는 일반 플레이스 홀더를 사용하여 포함되어 있으며 선택적인 매개 변수는 괄호 안에 있습니다.
ShopifyQL 키워드
ShopifyQL 쿼리는 높은 수준의 데이터 분석 정보를 위한 기본적 쿼리에서부터 세부적인 분석 정보를 위한 포괄적 쿼리까지 다양합니다. 각 키워드에는 쿼리를 작성하는 특정 기능이 있습니다.
키워드 | 설명 |
---|---|
FROM | 데이터를 선택할 데이터 세트 표를 지정합니다. |
SHOW | 데이터 세트 표에서 추출할 열을 선택합니다. |
WHERE | 행이 선택되기 위해 충족해야 하는 조건(하나 이상)을 정의합니다. |
GROUP BY | 추출한 데이터를 차원 또는 시간 차원별로 그룹화합니다. |
WITH | 특정 ShopifyQL 키워드의 동작을 수정합니다. |
TIMESERIES | 시간 차원별로 그룹화를 구분하 고 쿼리에서 날짜를 백필합니다. |
HAVING | 쿼리 결과를 그룹화한 후 필터링합니다. |
SINCE | 과거의 지정된 시간 이후의 데이터를 표시합니다. 흔히 UNTIL 과 함께 사용됩니다. |
UNTIL | 과거의 지정된 시간까지의 데이터를 표시합니다. 흔히 SINCE 또는 COMPARE TO 와 함께 사용됩니다. |
DURING | 과거의 지정된 시간 동안의 데이터를 표시합니다. |
COMPARE TO | 과거의 지정된 시간과 비교하는 데이터를 표시합니다. |
ORDER BY | 데이터를 정렬할 열을 지정합니다. |
LIMIT | 표시되는 데이터의 행 수를 제한합니다. |
VISUALIZE | 데이터를 선 또는 막대 시각화로 표시합니다. TYPE 을 사용하여 원하는 시각화를 지정할 수 있습니다. |
AS | 열 이름을 선택한 이름으로 바꾸는 선택적 키워드입니다. |
FROM 및 SHOW
가장 간단한 ShopifyQL 쿼리를 생성하려면 FROM
과 SHOW
의 두 가지 키워드만 해당 순서로 작성하면 됩니다. FROM
다음에 하나 이상의 테이블 이름 매개 변수가 오면 쿼리할 테이블을 지정합니다. SHOW
다음에 열 이름 매개 변수가 원하는 수만큼 오면 선택할 열을 지정합니다.
SHOW
는 보고서에서 메트릭과 차원이 반환되는 순서를 지정하는 데 사용할 수 있습니다.
예를 들어 다음 쿼리를 작성하여 총 판매액의 합계를 반환할 수 있습니다.
WHERE
WHERE
키워드를 사용하면 전체 ShopifyQL 쿼리에 차원 필터를 적용할 수 있습니다. 필터는 비교 연산자(예: 초과 >
), 논리 연산자(예: AND
또는 NOT
), 부분 문자열 및 배열 일치(예: STARTS WITH
및 CONTAINS
)를 모두 사용하여 수정할 수 있습니다.
WHERE
조건은 다음 요구 사항을 충족해야 합니다.
- 값은 큰따옴표(")가 아닌 작은따옴표(')로 묶어야 합니다.
- 조건은 산술을 포함할 수 없습니다.
- 조건은 메트릭이 아닌 차원만 참조할 수 있습니다.
예를 들어 청구지 국가를 기준으로 필터링된 총 판매액을 반환하려는 경우 쿼리는 다음과 같습니다.
위의 예와 같이 WHERE
매개 변수가 SHOW
키워드에 포함되지 않은 경우에도 해당 파라미터를 사용하여 결과 집합을 필터링할 수 있습니다. 이 경우 billing_country
가 결과 집합에 포함되지 않더라도 총 판매액은 캐나다의 주문에 대해서만 필터링됩니다.
비교 연산자
WHERE
키워드는 비교 연산자를 사용하여 데이터를 필터링합니다. 위의 예에서는 =
을 사용하여 쿼리가 특정 값을 필터링하도록 지정했지만, 다른 연산자를 사용할 수도 있습니다.
비교 연산자 | 설명 |
---|---|
= | 같음 |
!= | 같지 않음 |
< | 작음 |
> | 큼 |
<= | 이하 |
>= | 이상 |
논리 연산자
데이터를 더 필터링하기 위해 쿼리에 논리 연산자를 추가할 수 있습니다. ShopifyQL 연산자는 다음과 같습니다.
논리 연산자 | 설명 |
---|---|
AND |
AND 로 구분된 조건이 충족되는 모든 행을 포함 하도록 필터링합니다. |
OR |
OR 로 구분된 조건 중 하나가 충족되는 모든 행을 포함하도록 필터링합니다. |
NOT | 조건이 충족되지 않는 행(예: 지정된 값을 포함하지 않은 행)만 포함하도록 필터링합니다. |
논리 연산자를 추가하여 WHERE
키워드와 함께 여러 필터를 사용할 수 있습니다.
청구 주소가 캐나다이고 할인이 적용된 모든 말린 복숭아에 대한 주문의 순 판매액을 월별로 그룹화하기 위해 데이터 세트 쿼리 예에 추가할 쿼리는 다음과 같습니다.
GROUP BY
메트릭을 차원으로 세분화하려면(예: 지역별로 판매액 그룹화) GROUP BY
키워드를 사용하세요. GROUP BY
키워드는 모든 차원 매개 변수와 함께 사용할 수 있습니다.
예를 들어 청구지 국가 및 지역별로 총 판매액을 그룹화하는 쿼리는 다음과 같이 작성됩니다.
다음은 시간 차원을 사용하여 월별 총 판매액을 표시하는 또 다른 쿼리 예입니다.
위의 쿼리는 매출이 없는 달을 반환하지 않습니다. 완전하고 중단 없는 기간을 반환하는 쿼리를 작성하려면 TIMESERIES
키워드를 사용하세요.
시간 차원
다음은 데이터를 그룹화하는 데 사용할 수 있는 시간 치수입니다.
연산자 | 설명 |
---|---|
second | 시간의 초로 그룹화합니다. |
minute | 시간의 분으로 그룹화합니다. |
hour | 일의 시간별로 그룹화합니다. |
day | 일별로 그룹화합니다. |
week | 주간별로 그룹화합니다. |
month | 월별로 그룹화합니다. |
quarter | 달력 분기별로 그룹화합니다. |
year | 연도로 그룹화합니다. |
hour_of_day | 24시간별(1,2,...,24)로 그룹화합니다. |
day_of_week | 요일별(M, T, W,...,S)로 그룹화합니다. |
week_of_year | 주간별(1,2,...,52)로 그룹화합니다. |
month_of_year | 연도별 월(1, 2, ..., 12)로 그룹화합니다. |
TIMESERIES
시간 차원별로 그룹화를 구분하고, 시간에 따른 메트릭을 확인하고, 쿼리에서 날짜를 백필하여 데이터가 존재하지 않는 시계열 그래프로 전환하려는 경우 TIMESERIES
키워드를 사용할 수 있습니다.
다음 예에서는 지난 15일 동안 누락된 총 판매액 데이터를 백필합니다.
TIMESERIES 및 열 순서
TIMESERIES
가 지정되었는지, GROUP BY
또는 SHOW
값에 존재하는지 여부에 따라 열의 순서가 변경될 수 있습니다.
TIMESERIES | SHOW | GROUP BY | 결과 |
---|---|---|---|
지정됨 | 없음 | 없음 |
TIMESERIES 가 첫 번째 차원입니다. |
지정됨 | 없음 | 있음 | 시간 차원 위치는 GROUP BY 에서의 위치로 정의됩니다. |
지정됨 | 있음 | 있음 | 시간 차원 위치는 SHOW 에서의 위치로 정의됩니다. |
지정되지 않음 | 없음 | 있음 | 시간 차원 위치는 GROUP BY 에서의 위치로 정의됩니다. 데이터가 백필되지 않습니다. |
지정되지 않음 | 있음 | 있음 | 시간 차원 위치는 SHOW 에서의 위치로 정의됩니다. 데이터가 백필되지 않습니다. |
지정되지 않음 | 있음 | 없음 |
SHOW 는 GROUP BY 에 있는 차원만 참조할 수 있으므로 구문 오류가 발생합니다. |
HAVING
WHERE
과 마찬가지로 HAVING
키워드를 사용하여 쿼리 결과를 그룹화한 후 필터링할 수 있습니다. 필터에는 하나의 조건이 있을 수 있지만, 조건은 비교 연산자(예: 초과 >
) 및 논리 연산자(예: AND
또는 NOT
)를 모두 사용하여 수정할 수 있습니다. WHERE
키워드와 달리 HAVING
은 별칭, 집계 함수, 그룹화 열을 참조할 수 있습니다.
HAVING
은 쿼리에 GROUP BY
또는 TIMESERIES
절을 포함해야 합니다. HAVING
은 GROUP BY
또는 TIMESERIES
를 사 용하여 쿼리 결과를 그룹화한 후에 필터링하기 때문입니다.
다음 예에서는 총 판매액이 1000보다 크고 5000보다 작은 각 제품의 총 판매액을 필터링합니다.
WITH
WITH
키워드는 다른 특정 ShopifyQL 키워드의 동작을 수정합니다. 사용 가능한 수정 사항은 3가지입니다.
-
TOTALS
: 메트릭이 차원별로 분석되기 전에 최상위 메트릭 요약을 제공합니다. -
GROUP_TOTALS
: 집계별 그룹이 있는 경우 모든 하위 그룹에 대한 총계를 제공합니다. -
PERCENT_CHANGE
:COMPARE TO
의 각 비교 열에 변화율 메트릭을 추가합니다. 이 한정자가 있으면 각 비교 메트릭 열에 변화율을 포함하는 새 열이 추가됩니다.
TOTALS
TOTALS
한정자는 메트릭이 다른 차원별로 분석되기 전에 최상위 메트릭 요약을 제공합니다. WITH TOTALS
를 사용하면 쿼리는 메트릭 이름과 열 이름의 일부로 "총계"가 포함된 결과 집합의 추가 열로 총계를 반환합니다. 각 행에는 해당하는 총계가 모두 포함됩니다.
예를 들어 다음 쿼리는 총 판매액의 총계를 표시합니다.
이 쿼리는 다음과 유사한 보고서를 반환할 수 있습니다.
일 | 총 판매량 | 순 판매액 | 총 판매량 | 총 판매량 총계 | 순 판매액 총계 | 총 판매액 총계 |
---|---|---|---|---|---|---|
2024-01-01 | 1 | 4 | 7 | 6 | 15 | 24 |
2024-01-02 | 2 | 5 | 8 | 6 | 15 | 24 |
2024-01-03 | 3 | 6 | 9 | 6 | 15 | 24 |
GROUP_TOTALS
GROUP_TOTALS
한정자는 집계별 그룹이 있는 경우 모든 하위 그룹에 대한 총계를 제공합니다. WITH GROUP_TOTALS
를 사용하면 쿼리는 메트릭 이름, 합산되는 차원, 열 이름의 일부로 "총계"가 포함된 결과 집합의 추가 열로 총계를 반환합니다. 각 행에는 해당하는 총계가 모두 포함됩니다.
예를 들어 다음 쿼리는 청구지 국가별 총 판매액을 표시합니다.
이 쿼리는 다음과 유사한 보고서를 반환할 수 있습니다.
국가 | 고객 ID | 총 판매량 | 총 판매액 국가 총계 | 총 판매액 총계 |
---|---|---|---|---|
미국 | 1 | 1 | 0 | 1 |
미국 | null | -1 | 1 | 1 |
캐나다 | 1 | 1 | 1 | 1 |
PERCENT_CHANGE
PERCENT_CHANGE
한정자는 COMPARE TO
를 사용할 때 각 비교 열에 변화율 메트릭을 추가합니다. WITH PERCENT_CHANGE
를 사용하면 쿼리는 메트릭 이름과 열 이름의 일부로 "변화율"이 포함된 결과 집합의 추가 열로 각 비교 메트릭의 변화율을 반환합니다.
변화율을 계산하는 데 사용되는 공식은 다음과 같습니다: (base_column - comparison_column) * 100 / abs(comparison_column)
예를 들어 다음 쿼리는 SINCE
및 COMPARE TO
를 사용하여 이전 달의 일별 순 판매액을 지난해의 같은 달과 비교하고 변화율 열을 포함합니다.
결과 보고서의 열에는 일, 순 판매액, 비교일, 순 판매액 일 비교, 순 판매액 비교, 순 판매액 변화율이 포함됩니다.
SINCE 및 UNTIL
날짜 또는 일부 기간으로 쿼리를 필터링하려는 경우 SINCE
및 UNTIL
키워드와 관련 매개 변수를 사용할 수 있습니다. 이러한 키워드는 기간만 필터링하므로 고유합니다. SINCE
를 사용하고 UNTIL
값을 정의하지 않으면 시간 범위의 끝은 기본적으로 today
로 설정됩니다.
예를 들어 다음은 어제까지 지난 12개월 동안의 캐나다 순 판매액을 찾는 쿼리입니다.
오프셋 연산자
특정 날짜 또는 날짜 및 시간 오프셋을 기준으로 필터링할 수 있습니다. ShopifyQL 오프셋 연산자는 다음과 같습니다.
오프셋 연산자 | 설명 |
---|---|
-{#}s | 쿼리가 실행된 날짜 및 시간으로부터 몇 초 전입니다. |
-{#}min | 쿼리가 실행된 날짜 및 시간으로부터 몇 분 전입니다. |
-{#}h | 쿼리가 실행된 날짜 및 시간으로부터 몇 시간 전입니다. |
-{#}d | 쿼리가 실행된 날짜 및 시간으로부터 몇 일 전입니다. |
-{#}w | 쿼리가 실행된 날짜 및 시간으로부터 몇 주 전입니다. |
-{#}m | 쿼리가 실행된 날짜 및 시간으로부터 몇 달 전입니다. |
-{#}q | 쿼리가 실행된 날짜 및 시간으로부터 몇 분기 전입니다. |
-{#}y | 쿼리가 실행된 날짜 및 시간으로부터 몇 년 전입니다. |
yyyy-MM-dd | 특정 날짜입니다. |
yyyy-MM-ddThh:mm:ss | 특정 날짜 및 시간입니다. |
날짜 함수
다음 함수는 SINCE
및 UNTIL
문에서 특정 날짜를 제외한 모든 날짜 범위 연 산자와 결합하여 사용할 수 있습니다. "startOf...
" 함수는 SINCE
와 함께 사용하면 관련 시간 단위(분, 시, 일, 주, 월, 분기, 연도)의 시작까지 자르고, "endOf...
" 함수는 UNTIL
와 함께 사용하면 관련 시간 단위의 끝까지 자릅니다.
유효한 결과를 반환하려면 날짜 함수 단위와 연산자 단위가 일치해야 합니다. 예를 들어 startOfMonth(-1m)
은 올바르지만 startOfMonth(-1d)
는 올바르지 않습니다.
날짜 함수 | 설명 |
---|---|
now | 쿼리가 실행된 날짜 및 시간입니다. |
startOfMinute(-{#}min) | 날짜 범위 연산자를 대상 분의 시작으로 자릅니다. |
endOfMinute(-{#}min) | 날짜 범위 연산자를 대상 분의 끝으로 자릅니다. |
startOfHour(-{#}h) | 날짜 범위 연산자를 대상 시의 시작으로 자릅니다. |
endOfHour(-{#}h) | 날짜 범위 연산자를 대상 시의 끝으로 자릅니다. |
startOfDay(-{#}d) | 날짜 범위 연산자를 대상 일의 시작으로 자릅니다. |
endOfDay(-{#}d) | 날짜 범위 연산자를 대상 일의 끝으로 자릅니다. | startOfWeek(-{#}w) | 날짜 범위 연산자를 대상 주의 시작으로 자릅니다. |
endOfWeek(-{#}w) | 날짜 범위 연산자를 대상 주의 끝으로 자릅니다. |
startOfMonth(-{#}m) | 날짜 범위 연산자를 대상 월의 시작으로 자릅니다. |
endOfMonth(-{#}m) | 날짜 범위 연산자를 대상 월의 끝으로 자릅니다. |
startOfQuarter(-{#}q) | 날짜 범위 연산자를 대상 분기의 시작으로 자릅니다. |
endOfQuarter(-{#}q) | 날짜 범위 연산자를 대상 분기의 끝으로 자릅니다. |
startOfYear(-{#}y) | 날짜 범위 연산자를 대상 연도의 시작으로 자릅니다. |
endOfYear(-{#}y) | 날짜 범위 연산자를 대상 연도의 끝으로 자릅니다. |
예를 들어 오늘이 2022년 11월 8일이면 다음 쿼리를 사용하여 2020년 1월 1일부터 2022년 10월 31일까지의 총 판매량을 반환할 수 있습니다.
DURING
DURING
키워드는 날짜 범위에 대한 날짜 필터링을 간소화하며 SINCE
와 UNTIL
사용을 대체합니다. DURING
키워드를 사용하여 알려진 기간(예: 연도 또는 특정 월) 또는 매년 날짜가 다른 날짜 범위(예: 블랙 프라이데이 사이버 먼데이)에 대한 쿼리 결과를 필터링할 수 있습니다. 예를 들어:
명명된 날짜 범위 연산자
DURING
은 다음과 같은 명명된 날짜 범위 연산자를 허용합니다.
명명된 날짜 범위 연산자 | 설명 |
---|---|
today | 쿼리가 실행된 날짜입니다. |
yesterday | 쿼리가 실행된 시간으로부터 24시간 전의 기간입니다. |
this_week | 이번 주입니다. |
this_month | 이번 달입니다. |
this_quarter | 이번 분기입니다. |
this_year | 이번 연도입니다. |
last_week | 지난 주입니다. |
last_month | 지난 달입니다. |
last_quarter | 지난 분기입니다. |
last_year | 지난 연도입니다. |
bfcmYYYY | 지정된 연도의 블랙 프라이데이 사이버 먼데이 범위입니다. 예를 들어 bfcm2022 는 2022년 11월 25일부터 28일까지의 결과를 반환합니다. |
COMPARE TO
COMPARE TO
키워드를 사용하면 SINCE
와 UNTIL
또는 DURING
의 날짜 범위에서의 데이터와 COMPARE TO
의 데이터를 비교할 수 있습니다.
COMPARE TO
키워드는 다음과 같은 유형의 매개 변수와 함께 사용할 수 있습니다.
- 절대 날짜(예:
2023-01-01
): 지정된 기간의 메트릭과 절대 날짜의 동일 기간에 대한 비교 메트릭이 포함됩니다. -
명명된 날짜(예:
last_week
): 지정된 기간의 메트릭과 명명된 날짜의 동일 기간에 대한 비교 메트릭이 포함됩니다.-
COMPARE TO
에서 사용하는 연산자는DURING
에서 사용하는 연산자와 시간 길이가 동일할 필요가 없습니다.UNTIL
값이 제공되지 않으면DURING
에 지정된 값과 동일한 시간 범위를 계산합니다. 예를 들어DURING this_week COMPARE TO last_month
는 이번 주의 데이터를 지난달 초에 시작하는 1주일 기간과 비교합니다.
-
오프셋 날짜(예:
-3q
): 지정된 기간의 메트릭과 상대 날짜의 동일 기간에 대한 비교 메트릭이 포함됩니다.여러 날짜 비교(예:
-1y, -2y
): 특정 날짜 범위의 데이터를 다른 여러 날짜 범위와 비교합니다. 이는 여러 기간에 걸친 변경 사항을 추적하려는 경우에 유용할 수 있습니다.COMPARE TO
를 사용하는 쿼리에서 날짜 차원을 사용하는 경우GROUP BY
가 아닌TIMESERIES
를 사용해야 합니다.
다음 예는 지난달의 순 판매액을 지난해의 같은 달과 비교합니다.
상대 날짜 범위 연산자
상대 연산자는 지정된 기간만큼 뒤로 이동한 기준 날짜 범위와 동일한 시간 길이를 반환합니다. COMPARE TO
에는 명명된 날짜 범위 연산자 외에도 다음 상대 연산자를 사용할 수 있습니다.
상대 날짜 범위 연산자 | 설명 |
---|---|
previous_period | 기준 날짜 범위보다 한 기간 전입니다. |
previous_year | 기준 날짜 범위보다 1년 전입니다. |
previous_quarter | 기준 날짜 범위보다 1분기 전입니다. |
previous_month | 기준 날짜 범위보다 1개월 전입니다. |
previous_week | 기준 날짜 범위보다 1주일 전입니다. |
previous_day | 기준 날짜 범위보다 하루 전입니다. |
previous_hour | 기준 날짜 범위보다 1시간 전입니다. |
previous_minute | 기준 날짜 범위보다 1분 전입니다. |
previous_second | 기준 날짜 범위보다 1초 전입니다. |
ORDER BY
ORDER BY
키워드와 해당 매개 변수(오름차순의 경우 ASC
, 내림차순의 경우 DESC
)를 사용하여 쿼리에서 반환된 데이터를 정렬하는 방식을 지정할 수 있습니다.
여러 필드를 포함하여 ORDER BY
키워드의 쿼리에 포함할 메트릭이나 차원을 지정할 수 있습니다.
예를 들어 다음 쿼리는 지난 1년 동안 모든 제품 및 이형 상품에 대한 순 판매액을 반환합니다. 결과는 먼저 제품 이름별 알파벳순으로 정렬된 다음 제품 유형별 알파벳 역순으로 정렬됩니다.
메트릭이나 차원을 작성하는 순서는 중요합니다. ORDER BY
에 여러 값을 지정하면 정렬은 지정된 순서대로 각 메트릭이나 차원에 적용됩니다.
TIMESERIES 및 열 순서
쿼리에 TIMESERIES
및 ORDER BY
가 포함되어 있는지 여부에 따라 열의 순서가 변경될 수 있습니다.
TIMESERIES | ORDER BY | 결과 |
---|---|---|
있음 | 없음 | 결과는 TIMESERIES 차원을 기준으로 정렬됩니다. |
있음 | 있음 | 결과는 TIMESERIES 차원을 기준으로 정렬된 다음 ORDER BY 차원을 기준으로 정렬됩니다. |
없음 | 있음 | 결과는 ORDER BY 차원을 기준으로 정렬됩니다. |
없음 | 없음 | 결과는 첫 번째 SHOW 열을 기준으로 정렬됩니다. |
LIMIT
LIMIT
키워드를 사용하면 쿼리가 반환하는 최대 행 수를 지정할 수 있습니다. 이는 단순히 각 열의 데이터가 표시되는 방식을 파악하려고 하거나 쿼리에서 값을 반환하는 데 오래 걸릴 수 있는 대규모 보고서의 경우에 유용합니다. LIMIT
과 ORDER BY
를 결합하여 상위 및 하위 목록을 생성할 수 있습니다.
LIMIT
값을 지정하지 않으면 쿼리의 기본값은 1000행입니다.
선택 사항인 { OFFSET # }
매개 변수를 사용하여 행 데이터를 반환하기 전에 특정 수의 행을 건너뛸 수도 있습니다. 결과 문구의 형식은 LIMIT 15 { OFFSET 5 }
와 유사합니다.
이 예에서는 LIMIT
및 ORDER BY
를 사용하여 지난 3개월 동안 판매한 상위 10개 제품 목록을 생성합니다.
VISUALIZE 및 TYPE
VISUALIZE
키워드를 사용하면 그래픽 시각화로 데이터를 표시하는 ShopifyQL 쿼리를 작성할 수 있습니다. 지원되는 시각화에는 다음 값이 포함됩니다.
-
bar
-
stacked_bar
-
stacked_horizontal_bar
-
line
-
simple_bar
-
stacked_area
-
single_metric
-
donut
-
list
-
list_with_dimension_values
-
horizontal_bar
-
cohort
-
single_stacked_bar
-
funnel
-
grouped_bar
-
horizontal_grouped_bar
-
table
-
grid
TYPE
키워드는 선택 사항이며 단일 유형의 시각화와 함께 사용해야 합니다. TYPE
이 쿼리에 포함되어 있지 않은 경우 ShopifyQL은 자동으로 쿼리에 가장 적합한 시각화를 결정합니다. 쿼리를 작성된 대로 시각화할 수 없는 경우 ShopifyQL은 테이블 형식의 데이터를 반환합니다.
VISUALIZE
는 또한 렌더링할 데이터 요소의 수를 제한하는 매개 변수인 LIMIT
키워드를 허용합니다.
예를 들어 추세선을 사용하여 지난 1년 동안의 판매 추세를 월별로 시각화할 수 있습니다. 이 쿼리는 지난 1년의 월별 총 판매량을 표시하는 시계열 차트를 반환합니다. 총 판매량은 단일 선으로 나타나며 X축은 월로, Y축은 총 판매량으로 표시됩니다.
AS
키워드 AS
는 열이나 집계 함수의 반환 값의 이름을 바꾸거나 별칭을 제공할 수 있는 선택적 키워드입니다.
AS
는 하나의 매개 변수만 허용합니다. 별칭 이름에 공백이 있는 경우 별칭을 큰따옴표(")로 묶어야 합니다.
기타 ShopifyQL 함수 및 연산자
ShopifyQL에는 다음과 같은 추가 연산자와 함수가 포함되어 있습니다.
-
수학 연산자. 예:
+
또는/
-
함수. 예:
round()
및trim()
- 묵시적 조인
-
부분 문자열 및 배열 일치. 예:
STARTS WITH
및CONTAINS
- 주석
수학 연산자
ShopifyQL을 사용하면 데이터의 메트릭으로 산술 연산을 수행할 수 있습니다. 사용 가능한 수학 연산자는 다음과 같습니다.
수학 연산자 | 설명 |
---|---|
+ | 두 숫자를 더합니다. |
- | 두 숫자를 뺍니다. |
* | 두 숫자를 곱합니다. |
/ | 두 숫자를 나눕니다. |
예를 들어 다음 쿼리는 지난 1년 동안 각 지역의 주문 금액을 계산합니다. 메트릭과 함께 수학 연산자를 사용하는 경우 AS
키워드를 사용하여 새 메트릭에 새 이름을 지정할 수 있습니다.
함수
ShopifyQL 함수를 사용하면 Microsoft Excel의 피벗 테이블과 유사하게 열을 집계하거나 결합하여 새로운 값을 생성할 수 있습니다. 현재 ShopifyQL 버전에서는 다음 함수 연산자를 사용할 수 있습니다.
함수 연산자 | 설명 |
---|---|
TRIM(column_name) | 문자열에서 선행 공백과 후행 공백을 제거합니다. |
ROUND(column_name, decimal_places) | Rounds a numerical value to the nearest integer or specified decimal places. In this function, decimal_places is an integer value:
|
For example, this query uses the rounding function on the gross_sales
column, but omits the decimal_places
argument to round the value to the integer:
Implicit joins
A join allows you to view metrics from different domains together, side by side. Joins are done implicitly and intelligently in ShopifyQL.
ShopifyQL has the following join capabilities:
- ShopifyQL allows dimension field joins when there is a single
FROM
table in the query. - Automatic left join on dimension fields.
- ShopifyQL allows multi-fact joins (when there are multiple
FROM
tables in the queries). - Automatic full join on multi-fact joins, which support any number of tables or schemas and grouped by dimensions.
- Metrics in multi-fact joins can use functions and math.
Shopify QL has the following join restrictions:
- Join field must have the same name in all joined schemas.
- Join field must be in
GROUP BY
. - Join field can't use functions or math.
-
FROM
is necessary for multi-fact joins to work. - In a multi-fact join, every
GROUP BY
must be in all schemas and is considered a field on which to be joined.
For example, this query uses a multi-fact join:
Partial string and array matching
You can use the following operators for partial string and array matching:
Operator | Description |
---|---|
STARTS WITH | Return all rows where a column starts with a prefix. |
ENDS WITH | Return all rows where a column ends with a suffix. |
CONTAINS | Return all rows where a column contains a part of a string, or an element in an array. |
Some examples of partial string matching using operators include the following queries:
The CONTAINS
operator can be used to match elements within arrays, including integers, strings, and decimals. This matching isn't case-sensitive. Some examples of array matching using CONTAINS
include the following queries:
Comments
You can use comments to explain sections of ShopifyQL statements, or to prevent the execution of a ShopifyQL statement. Any text within a comment will be ignored during execution time.
Single line comments start with --
and end at the end of the line.
Multi-line comments start with /*
and end with */
.