Notebooks에서 ShopifyQL 사용

ShopifyQL은 상거래를 위해 작성된 Shopify의 쿼리 언어입니다. 쿼리 언어는 데이터베이스에서 데이터를 요청하고 검색하는 데 사용됩니다. Shopify의 Notebooks 앱과 함께 ShopifyQL을 사용하여 비즈니스 데이터베이스를 탐색하고 비즈니스에 대한 심층적인 이해를 제공하는 데이터를 검색할 수 있습니다.

ShopifyQL Notebook 쿼리에서 사용할 수 있는 값과 치수의 전체 목록은 주문 스키마제품 스키마를 참조하십시오.

ShopifyQL 개요

스토어 데이터는 정의된 열과 행으로 구조화된 데이터베이스 표에 저장됩니다. 열은 판매와 같은 정보 유형을 정의하며 행은 판매량 2,450 USD와 같은 데이터 유형의 실제 값을 지정합니다.

의미 있는 형식으로 데이터를 검색하려면 데이터베이스에 쿼리를 제출해야 합니다. 쿼리는 특정 데이터를 답변으로 요청하는 질문입니다. ShopifyQL과 같은 쿼리 언어는 해당 질문을 구성하는 표준화된 방식입니다. 쿼리는 키워드와 해당 매개 변수로 구성됩니다. 특정 매개 변수와 여러 키워드를 조합하여 쿼리를 작성합니다. 쿼리를 작성하고 나면 쿼리를 실행하고 답변을 받을 수 있습니다.

다음은 쿼리로 작성된 ShopifyQL 구문의 예입니다. 키워드가 굵게 표시되고 해당 매개 변수는 괄호 안에 있습니다. 여기에 표시된 매개 변수는 플레이스 홀더입니다.

FROM { table_name }
  SHOW { column1, column2, ... }
  GROUP BY { dimension | date_group }
  WHERE { condition }
  SINCE { date_offset }
  UNTIL { date_offset }
  ORDER BY { column } DESC
  LIMIT { count }

용어집

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 및 해당 제목을 나열할 수 있습니다.

FROM products
  SHOW product_id, product_title

데이터 그룹화: GROUP BY

메트릭을 지역별 그룹 판매량과 같은 차원으로 분할하려면 GROUP BY 키워드를 사용합니다. GROUP BY 키워드는 모든 차원 매개 변수와 짝을 이룰 수 있습니다.

예를 들어 청구 국가 및 지역별로 총 배송비를 그룹화하는 쿼리는 다음과 같이 작성됩니다.

FROM orders
  SHOW shipping
  GROUP BY billing_country, billing_region

다음은 시간 치수를 사용하여 월별 순 판매액을 표시하는 또 다른 예제 쿼리입니다.

FROM orders
  SHOW net_sales
  GROUP BY month

위의 쿼리는 매출이 없는 달을 반환하지 않습니다. 완전하고 중단 없는 기간을 반환하는 쿼리를 작성하려는 경우 ALL 한정자를 사용합니다.

FROM orders
  SHOW net_sales
  GROUP BY month ALL
  SINCE last_year
  UNTIL today

ALL 한정자를 사용하는 경우 SINCEUNTIL도 지정해야 합니다. ALL 한정자는 시간 차원에서만 작동합니다.

시간 차원

다음은 데이터를 그룹화하는 데 사용할 수 있는 시간 치수입니다.

ShopifyQL 시간 치수
연산자 기능적 사용
hour 일의 시간별로 그룹화합니다.
일별로 그룹화합니다.
주간별로 그룹화합니다.
월별로 그룹화합니다.
분기 달력 분기별로 그룹화합니다.
연도 연도로 그룹화합니다.
hour_of_day 24시간별로 그룹화합니다(1,2,...,24).
day_of_week 요일별로 그룹화합니다(M, T, W,...,S).
week_of_year 주간별로 그룹화합니다(1,2,...,52).

데이터 필터링: WHERE

WHERE 키워드를 사용하면 전체 ShopifyQL 쿼리에 치수 필터를 적용할 수 있습니다.

예를 들어 특정 지역에만 월별로 그룹화된 순 판매액을 반환하려는 경우 쿼리는 다음과 같습니다.

FROM orders
  SHOW net_sales
  GROUP BY month ALL
  WHERE billing_region = 'ohio'
  SINCE last_year
  UNTIL today

위의 예에서 볼 수 있듯이 해당 매개 변수가 SHOW 또는 GROUP BY 키워드에 포함되지 않은 경우에도 결과 집합을 WHERE 매개 변수로 필터링할 수 있습니다. 이 경우 billing_region이 결과 집합에 포함되지 않아도 순 판매액은 모든 달에 걸쳐 청구 주소가 오하이오주인 주문에 대해서만 필터링됩니다.

비교 연산자

WHERE 키워드는 비교 연산자를 사용하여 데이터를 필터링합니다. 위의 예에서 '='는 특정 값에 대한 쿼리 필터를 지정하는 데 사용되었지만, 사용 가능한 다른 연산자가 있습니다.

ShopifyQL 비교 연산자
비교 연산자 기능적 사용
= 같음
!= 같지 않음
< 작음
>
<= 이하
>= 이상

논리 연산자

데이터를 더 필터링하기 위해 쿼리에 논리 연산자를 추가할 수 있습니다. ShopifyQL 연산자는 다음과 같습니다.

ShopifyQL 논리 연산자
논리 연산자 기능적 사용
AND AND로 구분된 조건이 충족되는 모든 행을 표시하도록 필터링합니다.
OR OR로 구분된 조건 중 하나가 충족되는 모든 행을 표시하도록 필터링합니다.
NOT 조건이 충족되지 않는 행(예: 지정된 값을 포함하지 않은 행)만 표시하도록 필터링합니다.

논리 연산자를 추가하여 WHERE 키워드와 함께 여러 필터를 사용할 수 있습니다.

청구 주소가 오하이오주이며 할인이 적용된 모든 주문의 순 판매액을 월별로 그룹화하기 위해 예제 데이터 세트 쿼리에 추가하는 쿼리는 다음과 같습니다.

FROM orders
  SHOW net_sales
  GROUP BY month ALL
  WHERE billing_region = 'ohio' AND discounts > 0
  SINCE last_year
  UNTIL today

날짜 범위: SINCE 및 UNTIL

날짜 또는 일부 기간으로 쿼리를 필터링하려는 경우 SINCE 및 UNTIL 키워드와 관련 매개 변수를 사용할 수 있습니다. 이러한 키워드는 기간만 필터링하므로 고유합니다.

예를 들어 오늘부터 지난 12개월 동안의 캐나다 순 판매액을 찾는 쿼리는 다음과 같습니다.

FROM orders
  SHOW net_sales
  GROUP BY month ALL
  WHERE billing_country = 'Canada'
  SINCE -12m
  UNTIL today

오프셋 연산자

특정 날짜 또는 날짜 오프셋을 기준으로 필터링할 수 있습니다. ShopifyQL 오프셋 연산자는 다음과 같습니다.

ShopifyQL 오프셋 연산자
오프셋 연산자 기능적 사용
-{#}d 쿼리가 실행된 날 이전의 일수입니다.
-{#}w 쿼리가 실행된 날 이전의 주간 수입니다.
-{#}m 쿼리가 실행된 날 이전의 개월 수입니다.
-{#}q 쿼리가 실행된 날 이전의 분기 수입니다.
-{#}y 쿼리가 실행된 날 이전의 연수입니다.
yyyy-mm-dd 특정 날짜입니다.
오늘 쿼리가 실행된 날짜입니다.
어제 쿼리가 실행된 시기로부터의 이전 24시간입니다.

날짜 범위 필터링: DURING

DURING 키워드는 날짜 범위에 대한 날짜 필터링을 간소화합니다. DURING 키워드를 사용하여 알려진 기간(예: 연도 또는 특정 월) 또는 매년 날짜가 다른 날짜 범위(예: 블랙 프라이데이 사이버 먼데이)에 대한 쿼리 결과를 필터링할 수 있습니다. 예를 들어:

FROM orders
  SHOW sum(net_sales)
  GROUP BY day ALL
  DURING bfcm2021

DURING은 다음과 같은 명명된 날짜 범위 연산자를 허용합니다:

ShopifyQL 명명된 날짜 범위 연산자
날짜 범위 연산자 기능적 사용
오늘 쿼리가 실행된 날짜입니다.
어제 쿼리가 실행된 시간으로부터 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년 블랙 프라이데이 사이버 먼데이를 비교합니다.

FROM orders
  SHOW sum(net_sales)
  GROUP BY day ALL
  DURING bfcm2022
  COMPARE TO bfcm2021

데이터 정렬: ORDER BY

ORDER BY 키워드와 해당 매개 변수(오름차순의 경우 ASC, 내림차순의 경우 DESC)를 사용하여 쿼리에서 반환된 데이터를 정렬하는 방법을 지정할 수 있습니다.

여러 필드를 포함하여 ORDER BY 키워드의 쿼리에 포함할 메트릭이나 치수를 지정할 수 있습니다.

예를 들어 이 쿼리는 각 청구 국가 및 지역의 순 판매액을 청구 국가 및 각 국가 내 청구 지역별로 알파벳 역순으로 정렬하여 반환합니다.

FROM orders
  SHOW net_sales
  GROUP BY billing_country, billing_region
  SINCE -1y
  UNTIL today
  ORDER BY billing_country, billing_region DESC

메트릭 또는 치수를 작성하는 순서는 중요합니다. ORDER BY에 여러 값을 지정하면 해당 주문의 각 메트릭 또는 치수에 정렬이 적용됩니다.


LIMIT

LIMIT 키워드를 사용하면 쿼리가 반환하는 행의 수를 지정할 수 있습니다. 이는 각 열의 데이터 모양만 파악하려는 경우에 유용합니다. 또는 ORDER BY와 결합하여 상단 및 하단 목록을 생성할 수 있습니다.

이 예는 LIMIT 및 ORDER BY를 사용하여 지난 3개월 동안 판매량 상위 10개 제품 목록을 수량별로 생성합니다.

FROM products
  SHOW net_product_quantity
  GROUP BY product_title
  SINCE -3m
  UNTIL today
  ORDER BY net_product_quantity DESC
  LIMIT 10

쿼리 차트 작성: VISUALIZE 및 TYPE

VISUALIZE 키워드를 사용하면 선이나 막대 시각화로 데이터를 표시하는 ShopifyQL 쿼리를 작성할 수 있습니다.

TYPE 키워드는 선택 사항이며, '선' 또는 '막대'가 함께 있어야 쿼리에서 선형 차트 또는 막대형 차트로 시각화를 반환합니다. TYPE이 쿼리에 포함되지 않은 경우 ShopifyQL에서 자동으로 쿼리에 가장 적합한 시각화를 결정합니다. 쿼리를 작성된 대로 시각화할 수 없다면 ShopifyQL은 표로 나타낸 데이터를 반환합니다.

예를 들어 추세선을 사용하여 지난 1년 동안의 판매 추세를 월별로 시각화할 수 있습니다. 이 쿼리는 지난 1년의 월별 총 판매량을 표시하는 시계열 차트를 반환합니다. 총 판매량은 단일 선으로 나타나며 X축은 월로, Y축은 총 판매량으로 표시됩니다.

FROM orders
  VISUALIZE gross_sales
  TYPE line
  GROUP BY month ALL
  SINCE -1y
  UNTIL today

수학 연산자

ShopifyQL을 사용하면 데이터의 메트릭으로 산술 연산을 수행할 수 있습니다. 사용 가능한 수학 연산자는 다음과 같습니다.

ShopifyQL 오프셋 연산자
수학 연산자 기능적 사용
+ 두 숫자를 더합니다.
- 두 숫자를 뺍니다.
* 두 숫자를 곱합니다.
/ 두 숫자를 나눕니다.

예를 들어, 이 쿼리는 지난 1년 동안 각 지역의 주문 금액을 계산합니다. 메트릭과 함께 수학 연산자를 사용하는 경우 AS 키워드를 이용하여 새 메트릭의 이름을 새로 할당할 수 있습니다.

FROM orders
  SHOW (net_sales + returns) AS order_value, orders, (net_sales + returns)/orders AS sales_per_order
  GROUP BY billing_region
  SINCE -1y
  UNTIL today

함수

ShopifyQL 기능을 사용하면 Microsoft Excel의 피벗 테이블과 유사한 열을 집계할 수 있습니다. 열을 집계하면 새 값을 생성하기 위한 열을 결합할 수 있습니다. 현재 ShopifyQL 버전에서는 다음 함수 연산자가 제공됩니다.

ShopifyQL 오프셋 연산자
함수 연산자 기능적 사용
count() 결과 집합의 인스턴스 수입니다.
sum() 결과 집합의 값 합계입니다.
min() 결과 집합의 최솟값입니다.
max() 결과 집합의 최댓값입니다.
avg() 결과 세트의 평균 값입니다.

sum, min, max, avg 함수는 숫자 값으로만 사용할 수 있지만, count 함수는 치수 속성의 여러 인스턴스를 계산하는 데 사용할 수 있습니다. 집계된 필드는 함수의 인수로 사용할 수 없습니다. 집계된 필드는 _sum, _count또는 _percent로 끝납니다.

예를 들어 다음 쿼리는 total_sales가 이미 집계되었으므로 오류를 반환합니다.

FROM orders
  SHOW sum(total_sales)

집계된 필드와 집계 함수를 혼합하는 유효한 쿼리는 다음과 같습니다.

FROM orders
  SHOW average_order_value, sum(gross_sales)
  GROUP BY billing_region
  SINCE 2021-01-01
  UNTIL 2021-12-31

이 쿼리는 sum 함수의 결과로 집계된 평균 주문 가격, 총 판매량 합계를 반환합니다. 이러한 메트릭은 2021년에 접수된 모든 주문에 대해 청구 지역별로 분류됩니다.


주석

주석을 사용하여 ShopifyQL 문의 섹션을 설명하거나 ShopifyQL 문 실행을 방지할 수 있습니다. 주석 내 모든 텍스트는 실행 시간 동안 무시됩니다.

한 줄로 된 주석은 --으로 시작하여 줄 끝에서 끝납니다.

여러 줄로 된 주석은 /*으로 시작하여 */으로 끝납니다.

FROM orders
  SHOW average_order_value, sum(gross_sales)
  -- the line below has been commented out and will not run
  -- GROUP BY billing_region
  WHERE billing_country = 'United States'
  /*
  this line and the two lines below it have been commented out and will not run
  SINCE 2021-01-01
  UNTIL 2021-12-31
*/

Shopify와 함께 사업을 시작할 준비가 되셨습니까?

무료 체험