Sử dụng ShopifyQL trong Sổ tay

ShopifyQL là ngôn ngữ truy vấn của Shopify được thiết kế dành cho thương mại. Ngôn ngữ truy vấn được sử dụng để yêu cầu và truy xuất dữ liệu từ cơ sở dữ liệu. Bạn có thể sử dụng ShopifyQL với ứng dụng Sổ tay Shopify để khám phá cơ sở dữ liệu của doanh nghiệp và truy xuất dữ liệu, giúp bạn hiểu sâu hơn về doanh nghiệp.

Để xem danh sách đầy đủ giá trị và kích thước có sẵn có thể sử dụng trong các truy vấn của ShopifyQL Notebooks, tham khảo Lược đồ đơn hàngLược đồ sản phẩm.

Tổng quan về ShopifyQL

Dữ liệu của cửa hàng được lưu trữ trong các bảng cơ sở dữ liệu, có cấu trúc trong các cột và hàng đã xác định. Các cột xác định loại thông tin chứa trong đó, chẳng hạn như doanh số và hàng chỉ rõ giá trị thực tế của loại dữ liệu, ví dụ như doanh số 2.450 USD.

Để truy xuất dữ liệu theo định dạng có ý nghĩa, bạn phải gửi truy vấn đến cơ sở dữ liệu. Truy vấn là câu hỏi yêu cầu dữ liệu cụ thể làm câu trả lời. Ngôn ngữ truy vấn như ShopifyQL là cách xây dựng câu hỏi đã được chuẩn hóa. Truy vấn được tạo từ từ khóa và các tham số tương ứng. Việc kết hợp một số từ khóa với các tham số cụ thể sẽ giúp xây dựng truy vấn. Sau khi xây dựng truy vấn, bạn có thể chạy truy vấn và nhận câu trả lời.

Đây là ví dụ về cú pháp ShopifyQL được viết ra dưới dạng truy vấn. Từ khóa được in đậm, các tham số tương ứng nằm trong dấu ngoặc. Các tham số hiển thị ở đây là phần giữ chỗ:

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 }

Bảng thuật ngữ

Định nghĩa thuật ngữ của ShopifyQL
Thuật ngữ Định nghĩa
Kích thước Thuộc tính sẽ phân khúc dữ liệu để có thể sắp xếp và trình bày dữ liệu rõ ràng hơn. Ví dụ thường gặp về kích thước bao gồm thời gian, sản phẩm và địa điểm. Kích thước được sử dụng làm tham số trong ShopifyQL.
Từ khóa Cú pháp ShopifyQL đóng vai trò như lệnh chỉ dẫn truy vấn.
Số liệu Kích thước định lượng dữ liệu. Ví dụ thường gặp về số liệu bao gồm tổng doanh số, số lượng đơn hàng và lợi nhuận gộp.
Tham số Cú pháp ShopifyQL xác định các phần tử cơ sở dữ liệu hoặc thông tin chi tiết được thêm vào truy vấn.

Bảng tham chiếu từ khóa

Đây là những từ khóa bạn có thể sử dụng để viết truy vấn:

Danh sách từ khóa ShopifyQL
Từ khóa Chức năng sử dụng
FROM Chỉ định bảng tập dữ liệu để chọn dữ liệu.
SHOW Chọn các cột bạn muốn trích xuất từ bảng tập dữ liệu.
VISUALIZE Hiển thị dữ liệu dưới dạng hình ảnh trực quan hóa dòng hoặc thanh.
GROUP BY Nhóm dữ liệu đã trích xuất theo kích thước hoặc kích thước thời gian.
WHERE Xác định điều kiện hoặc các điều kiện mà các hàng phải đáp ứng để được chọn.
SINCE Hiển thị dữ liệu kể từ một thời điểm cụ thể trước đây.
UNTIL Hiển thị dữ liệu cho đến thời điểm cụ thể trước đây.
DURING Hiển thị dữ liệu kể từ một thời điểm cụ thể trước đây.
COMPARE TO Hiển thị dữ liệu cho đến thời điểm cụ thể trước đây.
ORDER BY Chỉ định cột để sắp xếp dữ liệu theo đó.
LIMIT Giới hạn số hàng dữ liệu hiển thị.
AS Đổi tên cột thành tên bạn chọn.

Viết truy vấn ShopifyQL

Truy vấn ShopifyQL có thể bao hàm từ thông tin cơ bản, thông tin chi tiết về dữ liệu cấp cao đến thông tin toàn diện, chi tiết. Mỗi từ khóa có một chức năng cụ thể giúp xây dựng truy vấn.

Từ khóa cơ bản của ShopifyQL: FROM và SHOW

Việc tạo truy vấn ShopifyQL đơn giản nhất chỉ cần hai từ khóa: FROM và SHOW, được viết theo thứ tự này. FROM, theo sau là tham số tên bảng sẽ chỉ định bảng bạn muốn truy vấn. SHOW, theo sau là tham số tên cột sẽ chỉ định các cột bạn muốn chọn.

Ví dụ: Bạn có thể liệt kê tất cả ID sản phẩm và tiêu đề tương ứng trong bảng doanh số bằng cách viết truy vấn này:

FROM products
  SHOW product_id, product_title

Nhóm dữ liệu: GROUP BY

Để phân khúc số liệu theo kích thước, chẳng hạn nhóm doanh số theo khu vực, sử dụng từ khóa GROUP BY. Có thể ghép nối từ khóa GROUP BY với tham số kích thước bất kỳ.

Ví dụ: Truy vấn nhóm tổng phí vận chuyển theo quốc gia và khu vực thanh toán được viết là:

FROM orders
  SHOW shipping
  GROUP BY billing_country, billing_region

Đây là một ví dụ khác về truy vấn sử dụng chiều thời gian để hiển thị doanh thu thực theo tháng:

FROM orders
  SHOW net_sales
  GROUP BY month

Truy vấn trên không trả về tháng không có doanh số. Nếu bạn muốn truy vấn trả về một khoảng thời gian hoàn chỉnh và không gián đoạn, hãy sử dụng từ bổ trợ ALL:

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

Khi sử dụng từ bổ trợ ALL, bạn cũng cần chỉ định SINCEUNTIL. Lưu ý: Từ bổ trợ ALL chỉ phù hợp với kích thước thời gian.

Đại lượng thời gian

Đây là các kích thước thời gian bạn có thể sử dụng để nhóm dữ liệu:

Kích thước thời gian ShopifyQL
Toán tử Chức năng sử dụng
giờ Nhóm theo giờ của ngày dương lịch.
day Nhóm theo ngày dương lịch.
week Nhóm theo tuần dương lịch.
tháng Nhóm theo tháng dương lịch.
quý Nhóm theo quý dương lịch.
year Nhóm theo năm dương lịch.
hour_of_day Nhóm theo 24 giờ (1, 2,..., 24).
day_of_week Nhóm theo ngày trong tuần (M, T, W,..., S).
week_of_year Nhóm theo tuần trong năm (1, 2,..., 52).

Lọc dữ liệu: WHERE

Từ khóa WHERE cho phép bạn áp dụng bộ lọc theo kích thước cho toàn bộ truy vấn ShopifyQL.

Ví dụ: Nếu bạn muốn trả về doanh thu thực, được nhóm theo tháng nhưng chỉ cho một khu vực cụ thể, truy vấn của bạn là:

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

Như có thể thấy trong ví dụ trên, bạn có thể lọc kết quả được thiết lập bằng tham số WHERE ngay cả khi tham số đó không có trong từ khóa SHOW hoặc GROUP BY. Trong trường hợp này, doanh thu thực chỉ được lọc trong tất cả tháng đối với đơn hàng có địa chỉ thanh toán tại Ohio, mặc dù billing_region không có trong kết quả đã đặt.

Toán tử so sánh

Từ khóa WHERE sử dụng toán tử so sánh để lọc dữ liệu. Trong ví dụ trên "=" được sử dụng để chỉ định rằng truy vấn sẽ lọc dựa trên một giá trị cụ thể, tuy nhiên, bạn có thể sử dụng những toán tử khác:

Toán tử so sánh ShopifyQL
Toán tử so sánh Chức năng sử dụng
= bằng
!= khác
< nhỏ hơn
> lớn hơn
<= nhỏ hơn hoặc bằng
>= lớn hơn hoặc bằng

Toán tử logic

Để lọc thêm dữ liệu, bạn có thể thêm toán tử logic vào truy vấn. Các toán tử logic của ShopifyQL là:

Toán tử logic ShopifyQL
Toán tử logic Chức năng sử dụng
AND Lọc để hiển thị tất cả hàng đáp ứng các điều kiện phân tách bằng AND.
HOẶC Lọc để hiển thị tất cả hàng đáp ứng một trong các điều kiện phân tách bằng OR.
NOT Lọc để chỉ hiển thị các hàng không đáp ứng các điều kiện như hàng không chứa giá trị đã chỉ định.

Bạn có thể sử dụng nhiều bộ lọc với từ khóa WHERE bằng cách thêm toán tử logic.

Thêm vào truy vấn tập dữ liệu mẫu để nhóm doanh thu thực hằng tháng cho tất cả đơn hàng có địa chỉ thanh toán tại Ohio và đã áp dụng ưu đãi giảm giá, truy vấn là:

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

Khoảng ngày: SINCE và UNTIL

Nếu muốn lọc truy vấn theo ngày hoặc khoảng thời gian nhất định, bạn có thể sử dụng từ khóa SINCE và UNTIL và các tham số liên quan. Các từ khóa này là duy nhất vì chỉ lọc khoảng thời gian.

Ví dụ: Đây là truy vấn để tìm doanh thu thực trong 12 tháng qua tại Canada, bắt đầu từ hôm nay:

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

Toán tử bù đắp

Bạn có thể lọc theo ngày cụ thể hoặc theo chênh lệch ngày. Các toán tử bù đắp ShopifyQL là:

Toán tử bù đắp ShopifyQL
Toán tử bù đắp Chức năng sử dụng
-{#}d Số ngày qua từ ngày chạy truy vấn.
-{#}w Số tuần qua từ ngày chạy truy vấn.
-{#}m Số tháng qua từ ngày chạy truy vấn.
-{#}q Số quý qua từ ngày chạy truy vấn.
-{#}y Số năm qua từ ngày chạy truy vấn.
dd-mm-yyyy Ngày cụ thể.
hôm nay Ngày chạy truy vấn.
hôm qua Khoảng thời gian 24 giờ trước đó kể từ khi chạy truy vấn.

Lọc theo khoảng ngày: DURING

Từ khóa DURING giúp đơn giản hóa quá trình lọc khoảng ngày. Bạn có thể sử dụng từ khóa DURING để lọc kết quả truy vấn trong một khoảng thời gian đã biết như năm dương lịch hoặc tháng cụ thể hoặc trong khoảng ngày có nhiều ngày mỗi năm như Black Friday Cyber Monday. Ví dụ:

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

DURING chấp nhận bất kỳ toán tử khoảng ngày nào dưới đây:

Toán tử khoảng ngày có tên ShopifyQL
Toán tử khoảng ngày Chức năng sử dụng
hôm nay Ngày chạy truy vấn.
hôm qua Khoảng thời gian 24 giờ trước đó kể từ khi chạy truy vấn.
this_week Tuần dương lịch hiện tại.
this_month Tháng dương lịch hiện tại.
this_quarter Quý dương lịch hiện tại.
this_year Năm dương lịch hiện tại.
last_week Tuần dương lịch trước đó.
last_month Tháng dương lịch trước đó.
last_quarter Quý dương lịch trước đó.
last_year Năm dương lịch trước đó.
bfcm2022 Từ ngày 25 tháng 11 đến ngày 28 tháng 11 năm 2022.
bfcm2021 Ngày 26 tháng 11 đến ngày 29 tháng 11 năm 2021.

So sánh theo khoảng ngày: COMPARE TO

Từ khóa COMPARE TO cho phép bạn so sánh dữ liệu trong khoảng ngày trong DURING và dữ liệu trong COMPARE TO. Từ khóa này chấp nhận mọi toán tử khoảng ngày được liệt kê trong mục DURING. Toán tử do COMPARE TO sử dụng phải có độ dài thời gian tương tự như toán tử do DURING sử dụng. Ví dụ: DURING this_week COMPARE TO last_week là tổ hợp hợp lệ nhưng DURING this_week COMPARE TO last_month thì không.

Ví dụ sau đây so sánh doanh thu thực trong dịp Black Friday Cyber Monday 2022 với Black Friday Cyber Monday 2021.

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

Sắp xếp dữ liệu: ORDER BY

Bạn có thể chỉ định cách bạn muốn sắp xếp dữ liệu do truy vấn trả về bằng từ khóa ORDER BY và các tham số: ASC đối với thứ tự tăng dần và DESC đối với thứ tự giảm dần.

Bạn có thể chỉ định số liệu hoặc kích thước bất kỳ mà bạn đang đưa vào truy vấn trong từ khóa ORDER BY, bao gồm nhiều trường.

Ví dụ: Truy vấn này trả về doanh thu thực của mỗi quốc gia và khu vực thanh toán, được sắp xếp theo thứ tự bảng chữ cái đảo ngược theo quốc gia thanh toán và sau đó theo khu vực thanh toán trong từng quốc gia.

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

Thứ tự bạn viết số liệu hoặc kích thước rất quan trọng. Nếu bạn chỉ định nhiều giá trị cho ORDER BY, tính năng sắp xếp được áp dụng cho từng số liệu hoặc kích thước theo thứ tự đã cho.


Giới hạn

Từ khóa LIMIT cho phép bạn chỉ định số lượng hàng mà truy vấn trả về. Từ khóa này rất hữu ích khi bạn chỉ muốn hiểu về hình thức của dữ liệu trong mỗi cột. Hoặc bạn có thể kết hợp từ khóa này với ORDER BY để tạo danh sách sản phẩm bán chạy nhất và bán kém nhất.

Ví dụ này sử dụng LIMIT và ORDER BY để tạo danh sách 10 sản phẩm bán chạy nhất theo số lượng trong 3 tháng qua:

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

Lập biểu đồ truy vấn: VISUALIZE và TYPE

Từ khóa VISUALIZE cho phép bạn viết truy vấn ShopifyQL hiển thị dữ liệu dưới dạng hình ảnh trực quan hóa dòng hoặc thanh.

Từ khóa TYPE không bắt buộc và phải đi kèm với "dòng" hoặc "thanh" để truy vấn trả về hình ảnh trực quan hóa dưới dạng biểu đồ dòng hoặc biểu đồ thanh tương ứng. Nếu TYPE không có trong truy vấn, ShopifyQL sẽ tự động quyết định hình ảnh trực quan hóa phù hợp nhất với truy vấn của bạn. Nếu không thể trực quan hóa truy vấn như đã viết, ShopifyQL sẽ trả về dữ liệu bảng.

Ví dụ: Bạn có thể trực quan hóa xu hướng bán hàng của mình trong năm ngoái theo tháng bằng đường xu hướng. Truy vấn này sẽ trả về biểu đồ chuỗi thời gian hiển thị tổng doanh số theo tháng trong năm ngoái. Tổng doanh số được mô tả bằng một đường duy nhất, có trục x được gắn nhãn là tháng và trục y được gắn nhãn là tổng doanh số:

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

Toán tử toán học

ShopifyQL cho phép các phép tính số học với số liệu trong dữ liệu của bạn. Có thể sử dụng các toán tử toán học sau:

Toán tử bù đắp ShopifyQL
Toán tử toán học Chức năng sử dụng
+ Phép cộng hai số.
- Phép trừ hai số.
* Phép nhân hai số.
/ Phép chia hai số.

Ví dụ: Truy vấn này tính giá trị đơn hàng cho từng vùng trong năm ngoái. Khi sử dụng toán tử toán học với số liệu, bạn có thể sử dụng từ khóa AS để gán tên mới cho số liệu mới.

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

Hàm số

Các chức năng ShopifyQL cho phép bạn tổng hợp các cột tương tự như tính năng pivot table trong Microsoft Excel. Tổng hợp các cột nghĩa là kết hợp các cột để tạo giá trị mới. Các toán tử chức năng sau đây hiện có trong phiên bản ShopifyQL mới:

Toán tử bù đắp ShopifyQL
Toán tử chức năng Chức năng sử dụng
count() Số lượng phiên bản trong tập kết quả.
sum() Tổng các giá trị trong tập kết quả.
min() Giá trị tối thiểu trong tập kết quả.
max() Giá trị tối đa trong tập kết quả.
avg() Đã đặt giá trị trung bình trong kết quả.

Chỉ có thể sử dụng các hàm sum, min, maxavg với các giá trị số, nhưng có thể sử dụng count để đếm các phiên bản khác nhau của thuộc tính theo kích thước. Bạn không thể sử dụng các trường tổng hợp làm đối số trong các hàm. Các trường tổng hợp kết thúc bằng _sum, _count, hoặc _percent.

Ví dụ: Truy vấn này trả về lỗi vì total_sales đã được tổng hợp:

FROM orders
  SHOW sum(total_sales)

Đây là truy vấn hợp lệ kết hợp các trường tổng hợp với các chức năng tổng hợp:

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

Truy vấn này trả về tổng giá trị đơn hàng trung bình tổng hợp, tổng doanh số tính bằng hàm sum. Các số liệu này được phân chia theo khu vực thanh toán đối với tất cả đơn hàng đã đặt vào năm 2021.


Bình luận

Bạn có thể sử dụng bình luận để giải thích các mục của câu lệnh ShopifyQL hoặc ngăn cản việc thực hiện câu lệnh ShopifyQL. Mọi văn bản trong bình luận sẽ bị bỏ qua trong quá trình thực hiện.

Các bình luận một dòng bắt đầu bằng -- và kết thúc vào cuối dòng.

Bình luận nhiều dòng bắt đầu bằng /* và kết thúc bằng */.

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
*/

Bạn đã sẵn sàng bán hàng với Shopify?

Dùng thử miễn phí