Notebooks에서 ShopifyQL 사용
ShopifyQL은 상거래를 위해 작성된 Shopify의 쿼리 언어입니다. 쿼리 언어는 데이터베이스에서 데이터를 요청하고 검색하는 데 사용됩니다. Shopify의 Notebooks 앱과 함께 ShopifyQL을 사용하여 비즈니스 데이터베이스를 탐색하고 비즈니스에 대한 심층적인 이해를 제공하는 데이터를 검색할 수 있습니다.
ShopifyQL Notebook 쿼리에서 사용할 수 있는 값과 치수의 전체 목록은 주문 스키마 및 제품 스키마를 참조하십시오.
이 페이지의 정보
ShopifyQL 개요
스토어 데이터는 정의된 열과 행으로 구조화된 데이터베이스 표에 저장됩니다. 열은 판매와 같은 정보 유형을 정의하며 행은 판매량 2,450 USD와 같은 데이터 유형의 실제 값을 지정합니다.
의미 있는 형식으로 데이터를 검색하려면 데이터베이스에 쿼리를 제출해야 합니다. 쿼리는 특정 데이터를 답변으로 요청하는 질문입니다. ShopifyQL과 같은 쿼리 언어는 해당 질문을 구성하는 표준화된 방식입니다. 쿼리는 키워드와 해당 매개 변수로 구성됩니다. 특정 매개 변수와 여러 키워드를 조합하여 쿼리를 작성합니다. 쿼리를 작성하고 나면 쿼리를 실행하고 답변을 받을 수 있습니다.
다음은 쿼리로 작성된 ShopifyQL 구문의 예입니다. 키워드가 굵게 표시되고 해당 매개 변수는 괄호 안에 있습니다. 여기에 표시된 매개 변수는 플레이스 홀더입니다.
용어집
기간 | 정의 |
---|---|
치수 | 데이터를 분류하여 더욱 명확하게 표시될 수 있도록 데이터를 분류하는 속성입니다. 치수의 일반적인 예로는 시간, 제품, 위치가 있습니다. 치수는 ShopifyQL에서 매개 변수로 사용됩니다. |
키워드 | 쿼리를 지시하는 명령 역할을 하는 ShopifyQL 구문입니다. |
메트릭 | 데이터의 정량적 측정입니다. 메트릭의 일반적인 예로는 총 판매액, 주문 수, 총 수익이 있습니다. |
매개 변수 | 쿼리에 포함될 데이터베이스 요소나 세부 정보를 식별하는 ShopifyQL 구문입니다. |
키워드 참조 표
다음은 쿼리 작성에 사용할 수 있는 키워드입니다.
키워드 | 기능적 사용 |
---|---|
FROM | 데이터를 선택할 데이터 세트 표를 지정합니다. |
SHOW | 데이터 세트 표에서 추출할 열을 선택합니다. |
VISUALIZE | 데이터를 선 또는 막대 시각화로 표시합니다. |
GROUP BY | 추출한 데이터를 차원 또는 시간 차원별로 그룹화합니다. |
WHERE | 행이 선택되기 위해 충족해야 하는 조건(하나 이상)을 정의합니다. |
SINCE | 과거의 지정된 시간 이후의 데이터를 표시합니다. |
UNTIL | 과거의 지정된 시간까지의 데이터를 표시합니다. |
DURING | 과거의 지정된 시간 이후의 데이터를 표시합니다. |
COMPARE TO | 과거의 지정된 시간까지의 데이터를 표시합니다. |
ORDER BY | 데이터를 정렬할 열을 지정합니다. |
LIMIT | 표시되는 데이터의 행 수를 제한합니다. |
AS | 열 이름을 선택한 이름으로 바꿉니다. |
ShopifyQL 쿼리 작성
ShopifyQL 쿼리는 높은 수준의 데이터 분석 정보를 위한 기본적 쿼리에서부터 세부적인 분석 정보를 위한 포괄적 쿼리까지 다양합니다. 각 키워드에는 쿼리를 작성하는 특정 기능이 있습니다.
ShopifyQL 기본: FROM 및 SHOW
가장 간단한 ShopifyQL 쿼리를 생성하려면 FROM 및 SHOW의 두 키워드만 해당 순서로 작성되어야 합니다. FROM 다음에 표 이름 매개 변수가 오면 쿼리할 표를 지정합니다. SHOW 다음에 열 이름 매개 변수가 표시되면 선택할 열을 지정합니다.
예를 들어 이 쿼리를 작성하여 판매 표에서 모든 제품 ID 및 해당 제목을 나열할 수 있습니다.
데이터 그룹화: GROUP BY
메트릭을 지역별 그룹 판매량과 같은 차원으로 분할하려면 GROUP BY 키워드를 사용합니다. GROUP BY 키워드는 모든 차원 매개 변수와 짝을 이룰 수 있습니다.
예를 들어 청구 국가 및 지역별로 총 배송비를 그룹화하는 쿼리는 다음과 같이 작성됩니다.
다음은 시간 치수를 사용하여 월별 순 판매액을 표시하는 또 다른 예제 쿼리입니다.
위의 쿼리는 매출이 없는 달을 반환하지 않습니다. 완전하고 중단 없는 기간을 반환하는 쿼리를 작성하려는 경우 ALL 한정자를 사용합니다.
ALL 한정자를 사용하는 경우 SINCE 및 UNTIL도 지정해야 합니다. ALL 한정자는 시간 차원에서만 작동합니다.
시간 차원
다음은 데이터를 그룹화하는 데 사용할 수 있는 시간 치수입니다.
연산자 | 기능적 사용 |
---|---|
hour | 일의 시간별로 그룹화합니다. |
일 | 일별로 그룹화합니다. |
주 | 주간별로 그룹화합니다. |
월 | 월별로 그룹화합니다. |
분기 | 달력 분기별로 그룹화합니다. |
연도 | 연도로 그룹화합니다. |
hour_of_day | 24시간별로 그룹화합니다(1,2,...,24). |
day_of_week | 요일별로 그룹화합니다(M, T, W,...,S). |
week_of_year | 주간별로 그룹화합니다(1,2,...,52). |
데이터 필터링: WHERE
WHERE 키워드를 사용하면 전체 ShopifyQL 쿼리에 치수 필터를 적용할 수 있습니다.
예를 들어 특정 지역에만 월별로 그룹화된 순 판매액을 반환하려는 경우 쿼리는 다음과 같습니다.
위의 예에서 볼 수 있듯이 해당 매개 변수가 SHOW 또는 GROUP BY 키워드에 포함되지 않은 경우에도 결과 집합을 WHERE 매개 변수로 필터링할 수 있습니다. 이 경우 billing_region이 결과 집합에 포함되지 않아도 순 판매액은 모든 달에 걸쳐 청구 주소가 오하이오주인 주문에 대해서만 필터링됩니다.
비교 연산자
WHERE 키워드는 비교 연산자를 사용하여 데이터를 필터링합니다. 위의 예에서 '='는 특정 값에 대한 쿼리 필터를 지정하는 데 사용되었지만, 사용 가능한 다른 연산자가 있습니다.
비교 연산자 | 기능적 사용 |
---|---|
= | 같음 |
!= | 같지 않음 |
< | 작음 |
> | 큼 |
<= | 이하 |
>= | 이상 |
논리 연산자
데이터를 더 필터링하기 위해 쿼리에 논리 연산자를 추가할 수 있습니다. ShopifyQL 연산자는 다음과 같습니다.
논리 연산자 | 기능적 사용 |
---|---|
AND | AND로 구분된 조건이 충족되는 모든 행을 표시하도록 필터링합니다. |
OR | OR로 구분된 조건 중 하나가 충족되는 모든 행을 표시하도록 필터링합니다. |
NOT | 조건이 충족되지 않는 행(예: 지정된 값을 포함하지 않은 행)만 표시하도록 필터링합니다. |
논리 연산자를 추가하여 WHERE 키워드와 함께 여러 필터를 사용할 수 있습니다.
청구 주소가 오하이오주이며 할인이 적용된 모든 주문의 순 판매액을 월별로 그룹화하기 위해 예제 데이터 세트 쿼리에 추가하는 쿼리는 다음과 같습니다.
날짜 범위: SINCE 및 UNTIL
날짜 또는 일부 기간으로 쿼리를 필터링하려는 경우 SINCE 및 UNTIL 키워드와 관련 매개 변수를 사용할 수 있습니다. 이러한 키워드는 기간만 필터링하므로 고유합니다.
예를 들어 오늘부터 지난 12개월 동안의 캐나다 순 판매액을 찾는 쿼리는 다음과 같습니다.
오프셋 연산자
특정 날짜 또는 날짜 오프셋을 기준으로 필터링할 수 있습니다. ShopifyQL 오프셋 연산자는 다음과 같습니다.
오프셋 연산자 | 기능적 사용 |
---|---|
-{#}d | 쿼리가 실행된 날 이전의 일수입니다. |
-{#}w | 쿼리가 실행된 날 이전의 주간 수입니다. |
-{#}m | 쿼리가 실행된 날 이전의 개월 수입니다. |
-{#}q | 쿼리가 실행된 날 이전의 분기 수입니다. |
-{#}y | 쿼리가 실행된 날 이전의 연수입니다. |
yyyy-mm-dd | 특정 날짜입니다. |
오늘 | 쿼리가 실행된 날짜입니다. |
어제 | 쿼리가 실행된 시기로부터의 이전 24시간입니다. |
날짜 범위 필터링: DURING
DURING 키워드는 날짜 범위에 대한 날짜 필터링을 간소화합니다. DURING 키워드를 사용하여 알려진 기간(예: 연도 또는 특정 월) 또는 매년 날짜가 다른 날짜 범위(예: 블랙 프라이데이 사이버 먼데이)에 대한 쿼리 결과를 필터링할 수 있습니다. 예를 들어:
DURING은 다음과 같은 명명된 날짜 범위 연산자를 허용합니다:
날짜 범위 연산자 | 기능적 사용 |
---|---|
오늘 | 쿼리가 실행된 날짜입니다. |
어제 | 쿼리가 실행된 시간으로부터 24시간 전의 기간입니다. |
this_week | 이번 주입니다. |
this_month | 이번 달입니다. |
this_quarter | 이번 분기입니다. |
this_year | 이번 연도입니다. |
last_week | 지난 주입니다. |
last_month | 지난 달입니다. |
last_quarter | 지난 분기입니다. |
last_year | 지난 연도입니다. |
bfcm2022 | 2022년 11월 25일부터 11월 28일까지입니다. |
bfcm2021 | 2021년 11월 26일부터 11월 29일까지입니다. |
날짜 범위 간 비교: COMPARE TO
COMPARE TO 키워드를 사용하면 DURING의 날짜 범위에서의 데이터와 COMPARE TO의 데이터를 비교할 수 있습니다. COMPARE TO는 DURING 섹션에 나열된 명명된 날짜 범위 연산자를 허용합니다. COMPARE TO에서 사용되는 연산자는 DURING에서 사용한 연산자와 시간 길이가 동일해야 합니다. 예를 들어 DURING this_week COMPARE TO last_week
는 올바른 조합이지만 DURING this_week COMPARE TO last_month
은 올바르지 않습니다.
다음 예시는 2022년 블랙 프라이데이 사이버 먼데이 동안의 순 판매액과 2021년 블랙 프라이데이 사이버 먼데이를 비교합니다.
데이터 정렬: ORDER BY
ORDER BY 키워드와 해당 매개 변수(오름차순의 경우 ASC, 내림차순의 경우 DESC)를 사용하여 쿼리에서 반환된 데이터를 정렬하는 방법을 지정할 수 있습니다.
여러 필드를 포함하여 ORDER BY 키워드의 쿼리에 포함할 메트릭이나 치수를 지정할 수 있습니다.
예를 들어 이 쿼리는 각 청구 국가 및 지역의 순 판매액을 청구 국가 및 각 국가 내 청구 지역별로 알파벳 역순으로 정렬하여 반환합니다.
메트릭 또는 치수를 작성하는 순서는 중요합니다. ORDER BY에 여러 값을 지정하면 해당 주문의 각 메트릭 또는 치수에 정렬이 적용됩니다.
LIMIT
LIMIT 키워드를 사용하면 쿼리가 반환하는 행의 수를 지정할 수 있습니다. 이는 각 열의 데이터 모양만 파악하려는 경우에 유용합니다. 또는 ORDER BY와 결합하여 상단 및 하단 목록을 생성할 수 있습니다.
이 예는 LIMIT 및 ORDER BY를 사용하여 지난 3개월 동안 판매량 상위 10개 제품 목록을 수량별로 생성합니다.
쿼리 차트 작성: VISUALIZE 및 TYPE
VISUALIZE 키워드를 사용하면 선이나 막대 시각화로 데이터를 표시하는 ShopifyQL 쿼리를 작성할 수 있습니다.
TYPE 키워드는 선택 사항이며, '선' 또는 '막대'가 함께 있어야 쿼리에서 선형 차트 또는 막대형 차트로 시각화를 반환합니다. TYPE이 쿼리에 포함되지 않은 경우 ShopifyQL에서 자동으로 쿼리에 가장 적합한 시각화를 결정합니다. 쿼리를 작성된 대로 시각화할 수 없다면 ShopifyQL은 표로 나타낸 데이터를 반환합니다.
예를 들어 추세선을 사용하여 지난 1년 동안의 판매 추세를 월별로 시각화할 수 있습니다. 이 쿼리는 지난 1년의 월별 총 판매량을 표시하는 시계열 차트를 반환합니다. 총 판매량은 단일 선으로 나타나며 X축은 월로, Y축은 총 판매량으로 표시됩니다.
수학 연산자
ShopifyQL을 사용하면 데이터의 메트릭으로 산술 연산을 수행할 수 있습니다. 사용 가능한 수학 연산자는 다음과 같습니다.
수학 연산자 | 기능적 사용 |
---|---|
+ | 두 숫자를 더합니다. |
- | 두 숫자를 뺍니다. |
* | 두 숫자를 곱합니다. |
/ | 두 숫자를 나눕니다. |
예를 들어, 이 쿼리는 지난 1년 동안 각 지역의 주문 금액을 계산합니다. 메트릭과 함께 수학 연산자를 사용하는 경우 AS 키워드를 이용하여 새 메트릭의 이름을 새로 할당할 수 있습니다.
함수
ShopifyQL 기능을 사용하면 Microsoft Excel의 피벗 테이블과 유사한 열을 집계할 수 있습니다. 열을 집계하면 새 값을 생성하기 위한 열을 결합할 수 있습니다. 현재 ShopifyQL 버전에서는 다음 함수 연산자가 제공됩니다.
함수 연산자 | 기능적 사용 |
---|---|
count() | 결과 집합의 인스턴스 수입니다. |
sum() | 결과 집합의 값 합계입니다. |
min() | 결과 집합의 최솟값입니다. |
max() | 결과 집합의 최댓값입니다. |
avg() | 결과 세트의 평균 값입니다. |
sum
, min
, max
, avg
함수는 숫자 값으로만 사용할 수 있지만, count
함수는 치수 속성의 여러 인스턴스를 계산하는 데 사용할 수 있습니다. 집계된 필드는 함수의 인수로 사용할 수 없습니다. 집계된 필드는 _sum
, _count
또는 _percent
로 끝납니다.
예를 들어 다음 쿼리는 total_sales가 이미 집계되었으므로 오류를 반환합니다.
집계된 필드와 집계 함수를 혼합하는 유효한 쿼리는 다음과 같습니다.
이 쿼리는 sum
함수의 결과로 집계된 평균 주문 가격, 총 판매량 합계를 반환합니다. 이러한 메트릭은 2021년에 접수된 모든 주문에 대해 청구 지역별로 분류됩니다.
주석
주석을 사용하여 ShopifyQL 문의 섹션을 설명하거나 ShopifyQL 문 실행을 방지할 수 있습니다. 주석 내 모든 텍스트는 실행 시간 동안 무시됩니다.
한 줄로 된 주석은 --
으로 시작하여 줄 끝에서 끝납니다.
여러 줄로 된 주석은 /*
으로 시작하여 */
으로 끝납니다.