Hướng dẫn bigquery python transaction - giao dịch python bigquery

Bài viết này chứa các ví dụ về cách tạo truy vấn của dữ liệu Analytics mà bạn xuất sang BigQuery. Chúng tôi đã tạo sẵn tập dữ liệu mẫu để bạn có thể thực hành với một số truy vấn trong bài viết này.

Nội dung trong bài viết này::

  • Tối ưu hoá truy vấn
  • Mẹo và các phương pháp hay nhất
    • Sử dụng tập dữ liệu mẫu
    • Sử dụng SQL chuẩn
    • Truy vấn nhiều bảng
      • 3 Ngày
      • 1095 ngày qua
      • 36 tháng qua
      • 3 năm qua
      • Phạm vi ngày cụ thể
      • Dữ liệu 3 năm qua cộng với dữ liệu hôm nay (trong ngày)
  • Ví dụ về truy vấn cơ bản
    • Tổng số [chỉ số] trên mỗi [phương diện]
    • Tỷ lệ thoát trung bình trên mỗi [phương diện]
    • Số lượt xem trang sản phẩm trung bình theo kiểu người mua hàng
    • Số giao dịch trung bình trên mỗi người mua
    • Số tiền trung bình được chi tiêu trên mỗi phiên hoạt động
    • Trình tự các lượt truy cập (phân tích đường dẫn)
    • Nhiều phương diện tuỳ chỉnh ở cấp lượt truy cập hoặc phiên hoạt động
  • Ví dụ về truy vấn nâng cao
    • Sản phẩm được mua bởi những khách hàng đã mua Sản phẩm A (Thương mại điện tử cổ điển)
    • Sản phẩm được mua bởi những khách hàng đã mua sản phẩm A (Thương mại điện tử nâng cao)
    • Số lượt tương tác trung bình của người dùng trước khi mua hàng
    • Tỷ lệ phần trăm hàng đã bán trên mỗi sản phẩm
    • Khả năng sinh lời của mỗi sản phẩm
    • Khả năng sinh lời thực tế của mỗi sản phẩm

Tối ưu hóa truy vấn

Mỗi truy vấn bạn chạy đóng góp vào phụ cấp xử lý dữ liệu hàng tháng. Nếu bạn chọn các trường không liên quan, số lượng dữ liệu cần được xử lý sẽ tăng lên. Khi đó, bạn sẽ sử dụng mức dữ liệu được phép hằng tháng nhiều hơn cần thiết. Truy vấn được tối ưu hoá giúp bạn sử dụng mức dữ liệu được phép hằng tháng một cách hiệu quả hơn.

Tìm hiểu thêm về mức giá.

Chỉ chọn những gì bạn cần

Khi bạn xây dựng truy vấn, hãy chọn các trường có liên quan trong câu lệnh SELECT. Khi không gọi các trường không liên quan, bạn sẽ giảm lượng dữ liệu và thời gian cần để xử lý truy vấn.

Ví dụ: tránh sử dụng toán tử ký tự đại diện tránh sử dụng toán tử ký tự đại diện

Dạng không hợp lệ: sử dụng toán tử ký tự đại diện
SELECT *
FROM [table name];
Dạng hợp lệ: sử dụng tên trường để tránh việc xử lý không cần thiết
SELECT field1, field2
FROM [table name];

Cho phép lưu vào bộ nhớ đệm

Khi cần thiết, tránh sử dụng các hàm dưới dạng trường. Các hàm (như NOW() hoặc TODAY()) trả lại các kết quả khác nhau, ngăn chặn các truy vấn được lưu vào bộ nhớ cache và do đó được trả lại nhanh hơn. Thay vào đó, hãy sử dụng thời gian và ngày tháng cụ thể.

Hiện tại, chúng tôi không hỗ trợ kết quả được lưu trong bộ nhớ đệm cho các truy vấn dựa trên nhiều bảng sử dụng ký tự đại diện, kể cả khi bạn đã chọn mục Sử dụng kết quả được lưu trong bộ nhớ đệm. Nếu bạn chạy cùng một truy vấn bao gồm ký tự đại diện nhiều lần, thì bạn sẽ thanh toán cho mỗi truy vấn. Tìm hiểu thêm

Sử dụng bảng trung gian cho các truy vấn con thường được sử dụng

Nếu nhận thấy bạn liên tục sử dụng một truy vấn cụ thể dưới dạng truy vấn con, bạn có thể lưu truy vấn đó dưới dạng bảng trung gian bằng cách nhấp vào Lưu dưới dạng bảng phía trên kết quả truy vấn. Sau đó, bạn có thể tham chiếu đến bảng đó trong mục FROM của truy vấn. Thao tác này có thể giúp giảm bớt lượng dữ liệu cũng như thời gian cần thiết để xử lý.Lưu dưới dạng bảng phía trên kết quả truy vấn. Sau đó, bạn có thể tham chiếu đến bảng đó trong mục FROM của truy vấn. Thao tác này có thể giúp giảm bớt lượng dữ liệu cũng như thời gian cần thiết để xử lý.

sử dụng bảng trung gian
SELECT field1, field2
FROM [Dataset name.table name];

Gỡ lỗi truy vấn

BigQuery gỡ lỗi mã của bạn khi bạn tạo mã. Trong cửa sổ cấu trúc, phần gỡ lỗi được biểu thị ngay bên dưới truy vấn. Việc gỡ lỗi cũng có sẵn thông qua API với cờ dryRun.

Truy vấn hợp lệ có chỉ báo màu xanh lá cây mà bạn có thể nhấp vào để xem lượng dữ liệu được xử lý theo truy vấn. Tính năng này cung cấp cho bạn cơ hội để tối ưu hóa dữ liệu trước khi chạy truy vấn để bạn có thể tránh việc xử lý dữ liệu không cần thiết.

Hướng dẫn bigquery python transaction - giao dịch python bigquery

Truy vấn không hợp lệ có chỉ báo màu đỏ mà bạn có thể nhấp vào để xem thông tin về lỗi, đồng thời tìm dòng và cột nơi xảy ra lỗi. Trong ví dụ bên dưới, câu lệnh GROUP BY trống và lỗi được xác định chính xác.

Hướng dẫn bigquery python transaction - giao dịch python bigquery

Mẹo và phương pháp hay nhất

Sử dụng tập dữ liệu mẫu

Các ví dụ sau sử dụng tập dữ liệu mẫu của Google Analytics.

Để sử dụng các truy vấn về dữ liệu của riêng bạn, chỉ cần thay thế tên dự án và tập dữ liệu trong các ví dụ bằng tên dự án và tập dữ liệu của riêng bạn.

Sử dụng SQL chuẩn so với SQL cũ

BigQuery hỗ trợ hai phương ngữ SQL:

  • SQL chuẩn
  • SQL cũ

Bài viết về Cách di chuyển sang SQL chuẩn giải thích sự khác biệt giữa hai phương ngữ.

SQL chuẩn hiện là phương ngữ SQL ưa thích để truy vấn dữ liệu được lưu trữ trong BigQuery.

Hãy xem bài viết về Cách bật SQL chuẩn để biết thông tin về cách bật SQL chuẩn trong CLI, API, giao diện người dùng BigQuery hoặc bất kỳ giao diện nào bạn đang sử dụng.

Cách dễ nhất để bắt đầu là thêm nhận xét "standardSQL" vào đầu các truy vấn SQL chuẩn của bạn như được trình bày trong các ví dụ sau.

Khi bạn sử dụng SQL cũ, dữ liệu Google Analytics 360 sẽ được chuyển qua một bảng mới hằng ngày. Để truy vấn nhiều bảng cùng một lúc, bạn có thể phân tách tên các bảng bằng dấu phẩy, sử dụng hàm ký tự đại diện bảng TABLE_DATE_RANGE, hoặc sử dụng nhiều hàm TABLE_DATE_RANGE được phân tách bằng dấu phẩy, như trong các ví dụ sau.

Truy vấn nhiều bảng

Các ví dụ sau đây thể hiện các truy vấn SQL chuẩn và SQL cũ cho cùng một dữ liệu.

3 ngày

SQL chuẩn
3 ngày sử dụng UNION ALL
#standardSQL
WITH ga_tables AS (
SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_20160801`
GROUP BY date

UNION ALL

SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_20160802`
GROUP BY date

UNION ALL

SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_20160803`
GROUP BY date

)
SELECT
date,
visits,
pageviews,
transactions,
revenue,
FROM ga_tables
ORDER BY date ASC

SQL cũ
3 ngày sử dụng tên bảng được phân tách bằng dấu phẩy
SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM
[bigquery-public-data.google_analytics_sample.ga_sessions_20160801],
[bigquery-public-data.google_analytics_sample.ga_sessions_20160802],
[bigquery-public-data.google_analytics_sample.ga_sessions_20160803]
GROUP BY
date
ORDER BY
date ASC

1095 ngày qua

SQL chuẩn
3 ngày sử dụng UNION ALL
#standardSQL
WITH ga_tables AS (
SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_20160801`
GROUP BY date

UNION ALL

SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_20160802`
GROUP BY date

UNION ALL

SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_20160803`
GROUP BY date

)
SELECT
date,
visits,
pageviews,
transactions,
revenue,
FROM ga_tables
ORDER BY date ASC

SQL cũ
3 ngày sử dụng tên bảng được phân tách bằng dấu phẩy
SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM
[bigquery-public-data.google_analytics_sample.ga_sessions_20160801],
[bigquery-public-data.google_analytics_sample.ga_sessions_20160802],
[bigquery-public-data.google_analytics_sample.ga_sessions_20160803]
GROUP BY
date
ORDER BY
date ASC

1095 ngày qua

SQL chuẩn
3 ngày sử dụng UNION ALL
#standardSQL
WITH ga_tables AS (
SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_20160801`
GROUP BY date

UNION ALL

SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_20160802`
GROUP BY date

UNION ALL

SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_20160803`
GROUP BY date

)
SELECT
date,
visits,
pageviews,
transactions,
revenue,
FROM ga_tables
ORDER BY date ASC

SQL cũ
3 ngày sử dụng tên bảng được phân tách bằng dấu phẩy
SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM
[bigquery-public-data.google_analytics_sample.ga_sessions_20160801],
[bigquery-public-data.google_analytics_sample.ga_sessions_20160802],
[bigquery-public-data.google_analytics_sample.ga_sessions_20160803]
GROUP BY
date
ORDER BY
date ASC

1095 ngày qua

SQL chuẩn
3 ngày sử dụng UNION ALL
#standardSQL
WITH ga_tables AS (
SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_20160801`
GROUP BY date

UNION ALL

SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_20160802`
GROUP BY date

UNION ALL

SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_20160803`
GROUP BY date

)
SELECT
date,
visits,
pageviews,
transactions,
revenue,
FROM ga_tables
ORDER BY date ASC

SQL cũ
3 ngày sử dụng tên bảng được phân tách bằng dấu phẩy
SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM
[bigquery-public-data.google_analytics_sample.ga_sessions_20160801],
[bigquery-public-data.google_analytics_sample.ga_sessions_20160802],
[bigquery-public-data.google_analytics_sample.ga_sessions_20160803]
GROUP BY
date
ORDER BY
date ASC

1095 ngày qua

SQL chuẩn
3 ngày sử dụng UNION ALL
#standardSQL
WITH ga_tables AS (
SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_20160801`
GROUP BY date

UNION ALL

SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_20160802`
GROUP BY date

UNION ALL

SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_20160803`
GROUP BY date

)
SELECT
date,
visits,
pageviews,
transactions,
revenue,
FROM ga_tables
ORDER BY date ASC

SQL cũ
3 ngày sử dụng tên bảng được phân tách bằng dấu phẩy
SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM
[bigquery-public-data.google_analytics_sample.ga_sessions_20160801],
[bigquery-public-data.google_analytics_sample.ga_sessions_20160802],
[bigquery-public-data.google_analytics_sample.ga_sessions_20160803]
GROUP BY
date
ORDER BY
date ASC

1095 ngày qua

SQL chuẩn
3 ngày sử dụng UNION ALL
#standardSQL
WITH ga_tables AS (
SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_20160801`
GROUP BY date

UNION ALL

SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_20160802`
GROUP BY date

UNION ALL

SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_20160803`
GROUP BY date

)
SELECT
date,
visits,
pageviews,
transactions,
revenue,
FROM ga_tables
ORDER BY date ASC

SQL cũ

SQL cũ

3 ngày sử dụng tên bảng được phân tách bằng dấu phẩy
#standardSQL
WITH ga_tables AS (
SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_20160801`
GROUP BY date

UNION ALL

SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_20160802`
GROUP BY date

UNION ALL

SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_20160803`
GROUP BY date

)
SELECT
date,
visits,
pageviews,
transactions,
revenue,
FROM ga_tables
ORDER BY date ASC

SQL cũ

3 ngày sử dụng tên bảng được phân tách bằng dấu phẩy

SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM
[bigquery-public-data.google_analytics_sample.ga_sessions_20160801],
[bigquery-public-data.google_analytics_sample.ga_sessions_20160802],
[bigquery-public-data.google_analytics_sample.ga_sessions_20160803]
GROUP BY
date
ORDER BY
date ASC

1095 ngày qua

1095 ngày qua sử dụng _TABLE_SUFFIX

SQL chuẩn

SELECT field1, field2
FROM [table name];
0
1095 ngày qua sử dụng TABLE_DATE_RANGE

SQL cũ

SELECT field1, field2
FROM [table name];
0
1095 ngày qua sử dụng TABLE_DATE_RANGE

SELECT field1, field2 FROM [table name];1

36 tháng qua

SQL chuẩn

36 tháng qua sử dụng _TABLE_SUFFIX
SELECT field1, field2
FROM [table name];
2

SQL cũ

36 tháng qua sử dụng _TABLE_SUFFIX
SELECT field1, field2
FROM [table name];
2

36 tháng qua sử dụng TABLE_DATE_RANGE

SELECT field1, field2
FROM [table name];
3

SQL chuẩn

3 năm qua
3 năm qua sử dụng _TABLE_SUFFIX

SQL cũ

3 năm qua
3 năm qua sử dụng _TABLE_SUFFIX

SELECT field1, field2
FROM [table name];
4

SQL chuẩn

3 năm qua sử dụng TABLE_DATE_RANGE
SELECT field1, field2
FROM [table name];
5

SQL cũ

3 năm qua sử dụng TABLE_DATE_RANGE
SELECT field1, field2
FROM [table name];
5

Phạm vi ngày cụ thể

Phạm vi ngày cụ thể sử dụng _TABLE_SUFFIX

SQL chuẩn

SELECT field1, field2
FROM [table name];
6
Phạm vi ngày cụ thể sử dụng TABLE_DATE_RANGE

SQL cũ

SELECT field1, field2
FROM [table name];
6
Phạm vi ngày cụ thể sử dụng TABLE_DATE_RANGE

SELECT field1, field2 FROM [table name];7

Dữ liệu 3 năm qua cộng với dữ liệu hôm nay (trong ngày)

SQL chuẩn

Dữ liệu 3 năm qua cộng với dữ liệu hôm nay (trong ngày) sử dụng UNION ALL & _TABLE_SUFFIX
Lưu ý: truy vấn mẫu này sẽ không hoạt động với tập dữ liệu công khai của Google Analytics vì hiện không có bảng trong ngày.

SQL cũ

Dữ liệu 3 năm qua cộng với dữ liệu hôm nay (trong ngày) sử dụng UNION ALL & _TABLE_SUFFIX
Lưu ý: truy vấn mẫu này sẽ không hoạt động với tập dữ liệu công khai của Google Analytics vì hiện không có bảng trong ngày.

SELECT field1, field2 FROM [table name];8

Dữ liệu 3 năm qua cộng với dữ liệu hôm nay (trong ngày) sử dụng nhiều TABLE_DATE_RANGE

SQL chuẩn

SELECT field1, field2
FROM [table name];
9
Ví dụ về truy vấn cơ bản

SQL cũ

SELECT field1, field2
FROM [table name];
9
Ví dụ về truy vấn cơ bản

Phần này giải thích cách xây dựng các truy vấn cơ bản bằng cách sử dụng chỉ số và thứ nguyên từ dữ liệu Analytics mẫu.

Nhiều thứ nguyên tùy chỉnh ở cấp lần truy cập hoặc phiên

phương diện tuỳ chỉnh ở cấp lượt truy cập
TODAY()6
phương diện tuỳ chỉnh ở cấp phiên hoạt động
TODAY()7

Trong mỗi truy vấn:

Câu lệnh TODAY()5 truy vấn để biết các trường phương diện và chỉ số có liên quan.

Hàm TODAY()9:

  • Trả lại thứ nguyên tùy chỉnh dưới dạng cột mới. Bạn có thể lặp lại hàm để trả lại nhiều thứ nguyên tùy chỉnh dưới dạng cột mới.
  • FROM0 và FROM1 đánh giá điều kiện bên trong các trường lặp lại trong BigQuery.
  • Điều kiện trong hàm TODAY()9 được đánh giá cho mỗi phương diện tuỳ chỉnh, nhưng đối với bất kỳ điều kiện nào không phải là FROM3 hoặc FROM4, thì giá trị trả về sẽ là FROM5.
  • Giá trị trả về là giá trị tối đa. Đây là giá trị của Phương diện tuỳ chỉnh 1 cho số lượt truy cập, hoặc Phương diện tuỳ chỉnh 2 cho số phiên hoạt động, vì tất cả các giá trị khác đều là FROM5.

Ví dụ về truy vấn nâng cao

Bây giờ bạn đã quen thuộc với các truy vấn đơn giản, bạn có thể tạo truy vấn bằng cách sử dụng các hàm và tính năng nâng cao khả dụng trong BigQuery.

Sản phẩm được mua bởi khách hàng đã mua sản phẩm A (Thương mại điện tử cổ điển)

Dưới đây là tập lệnh sườn cho câu hỏi: Khách hàng đã mua sản phẩm A mua những sản phẩm nào khác?

sản phẩm được mua bởi khách hàng đã mua sản phẩm A (Thương mại điện tử cũ)
FROM7
  1. Trong dòng đầu tiên, bạn chọn tất cả các mặt hàng khác đã được người dùng mua và sử dụng hàm tổng hợp FROM8 để tính số lượng của từng mặt hàng khác đã được mua. Sau đó, kết quả sẽ hiển thị trong trường gắn nhãn FROM9, thể hiện mặt hàng liên quan trong trường sản phẩm gắn nhãn SELECT field1, field2
    FROM [Dataset name.table name];
    0.
  2. Trong truy vấn con màu xám, bạn chỉ chọn những người dùng duy nhất (SELECT field1, field2
    FROM [Dataset name.table name];
    1) đã thực hiện giao dịch (SELECT field1, field2
    FROM [Dataset name.table name];
    2) và trong giao dịch đã mua sản phẩm A (SELECT field1, field2
    FROM [Dataset name.table name];
    3).

Các quy tắc (câu lệnh SELECT field1, field2
FROM [Dataset name.table name];
4 và SELECT field1, field2
FROM [Dataset name.table name];
5) trong truy vấn cấp cao nhất (màu xanh lá cây) bỏ qua các giá trị trong SELECT field1, field2
FROM [Dataset name.table name];
6 có giá trị rỗng và chứa sản phẩm A.

Dưới đây là ví dụ về truy vấn Nếu khách hàng mua Bút Brighton Metallic - Một bộ 4 bút, thì (các) sản phẩm khác mà họ đã mua là gì?

các sản phẩm được mua bởi khách hàng đã mua "Bút Brighton Metallic (Một bộ 4 bút)" vào ngày 24 tháng 6 năm 2013
SELECT field1, field2
FROM [Dataset name.table name];
7

Trong Dremel/BigQuery, việc sử dụng SELECT field1, field2
FROM [Dataset name.table name];
8 sẽ kích hoạt một JOIN, và các giới hạn về kích thước sẽ áp dụng. Cụ thể, kích thước bên phải của JOIN (trong trường hợp này là số người truy cập) phải ít hơn 8 MB. Trong Dremel, đây được gọi là broadcast JOIN. Khi kích thước này vượt quá 8MB, bạn cần kích hoạt shuffled JOIN bằng cách sử dụng cú pháp JOIN EACH. Rất tiếc, bạn không thể thực hiện cách này bằng cách sử dụng IN, nhưng có thể viết lại chính truy vấn này bằng JOIN.

Sản phẩm được mua bởi khách hàng đã mua sản phẩm A (Thương mại điện tử nâng cao)

Điều này tương tự với truy vấn sườn trước đó nhưng hoạt động cho Thương mại điện tử nâng cao. Bạn có thể sử dụng TABLE_DATE_RANGE để tạo truy vấn dữ liệu trong nhiều ngày.

sản phẩm được mua bởi một khách hàng đã mua sản phẩm A (Thương mại điện tử nâng cao)
TABLE_DATE_RANGE0

Số lượt tương tác trung bình của người dùng trước khi mua hàng

Đây là ví dụ về một truy vấn chứa lệnh TABLE_DATE_RANGE1, lệnh này chỉ phụ thuộc và dữ liệu Analytics.

Bên dưới là tập lệnh sườn cho câu hỏi: Số lượt tương tác trung bình với người dùng trước khi mua hàng là bao nhiêu?

số lượt tương tác của người dùng trước khi mua hàng
TABLE_DATE_RANGE2
  1. Dòng đầu tiên thực hiện phép toán chính để tìm số lượt tương tác của người dùng trung bình trên mỗi sản phẩm và truy vấn này sẽ tạo kết hợp giữa hai truy vấn phụ có tên là ‘Alias_Name_1’ và ‘Alias_Name_2’.
  2. ‘Alias_Name_1’ được sử dụng để tạo một trường sử dụng hàm tổng hợp TABLE_DATE_RANGE3 để tổng hợp tất cả số lần truy cập được ghi lại cho một sản phẩm.
  3. ‘Alias_Name_2’ được sử dụng để tìm số lần truy cập được người dùng thực hiện cho mỗi sản phẩm bằng cách sử dụng hàm FROM8.
  4. Dòng cuối cùng hiển thị trường chung (TABLE_DATE_RANGE5) được chia sẻ giữa hai tập dữ liệu được kết hợp.

Dưới đây là ví dụ về truy vấn Vào ngày 10 tháng 9 năm 2013, số lần tương tác của người dùng trung bình trước khi mua hàng là bao nhiêu?

số lượt tương tác của người dùng trước khi mua hàng vào ngày 10 tháng 9 năm 2013
TABLE_DATE_RANGE6

Tỷ lệ phần trăm hàng đã bán trên mỗi sản phẩm

Đây là ví dụ về truy vấn không chỉ phụ thuộc vào dữ liệu Analytics, mà còn phụ thuộc vào dữ liệu không phải của Analytics. Bằng cách kết hợp cả hai tập dữ liệu, bạn có thể bắt đầu hiểu hành vi của người dùng ở cấp được phân đoạn nhiều hơn. Bạn có thể nhập dữ liệu không phải của Analytics vào BigQuery, nhưng lưu ý rằng điều này sẽ góp phần vào chi phí lưu trữ dữ liệu hàng tháng của bạn.

Bên dưới là tập lệnh sườn cho câu hỏi: Tỷ lệ phần trăm hàng đã bán trên mỗi sản phẩm là bao nhiêu?

tỷ lệ phần trăm hàng đã bán trên mỗi sản phẩm
TABLE_DATE_RANGE7
  1. Dòng đầu tiên trả về hai trường: một trường chứa tất cả các mã sản phẩm và trường còn lại là phép toán sẽ cho thấy tỷ lệ phần trăm hàng đã bán cho mã sản phẩm đó.
  2. Do truy vấn này phụ thuộc vào hai tập dữ liệu, bạn cần sử dụng hàm TABLE_DATE_RANGE8. Lệnh này liên kết các hàng từ hai tập dữ liệu này dựa trên trường mà cả hai tập dữ liệu đều có. Trong trường hợp này, hai tập dữ liệu này là TABLE_DATE_RANGE9 và TABLE_DATE_RANGE0.
  3. TABLE_DATE_RANGE9 là dữ liệu không phải của Analytics. Đây là tập dữ liệu chứa trường chỉ số về số lượng hàng còn lại (TABLE_DATE_RANGE2) và trường phương diện mã sản phẩm (TABLE_DATE_RANGE3).
  4. TABLE_DATE_RANGE0 là tên được chỉ định cho dữ liệu được truy vấn con màu xám trả về. Truy vấn con này sử dụng dữ liệu Analytics để tìm hiểu tổng số lượng mặt hàng đã bán trên mỗi sản phẩm.
  5. Dòng cuối cùng sử dụng câu lệnh TABLE_DATE_RANGE5 để hiển thị trường chung giữa hai tập dữ liệu và nơi hai tập dữ liệu được kết hợp.

Trong truy vấn này, nhiều biến có tên tập dữ liệu kèm theo biến dưới dạng tiền số (ví dụ: TABLE_DATE_RANGE6). Tiền số này làm rõ trường bạn đang chọn, cũng làm rõ nguồn của tập dữ liệu.

Dưới đây là ví dụ về truy vấn Tỷ lệ phần trăm hàng đã bán trên mỗi sản phẩm vào ngày 28 tháng 7 năm 2013 là bao nhiêu?

tỷ lệ phần trăm hàng đã bán trên mỗi sản phẩm vào ngày 28 tháng 7 năm 2013
TABLE_DATE_RANGE7

Khả năng sinh lời của mỗi sản phẩm

Bên dưới là tập lệnh sườn cho câu hỏi: Khả năng sinh lời của mỗi sản phẩm là gì?

lợi nhuận của sản phẩm
TABLE_DATE_RANGE8
  1. Dòng đầu tiên chứa phép toán để tính tổng lợi nhuận được tạo trên mỗi sản phẩm.
  2. Truy vấn con màu xám sử dụng dữ liệu không phải của Analytic thu thập dữ liệu về bao nhiêu lợi nhuận sẽ được tạo khi sản phẩm được bán.
  3. Truy vấn con màu đỏ là truy vấn con dữ liệu Analytics, sẽ được kết hợp với dữ liệu không phải của Analytics. truy vấn sẽ tính số lượng mặt hàng đã bán trên mỗi sản phẩm.
  4. Hàng cuối cùng sử dụng câu lệnh TABLE_DATE_RANGE5 để làm rõ trường mà hai tập dữ liệu chia sẻ. Trong trường hợp này, trường đó là mã sản phẩm.

Dưới đây là ví dụ về truy vấn Khả năng sinh lời của mỗi sản phẩm vào ngày 28 tháng 7 năm 2013 là bao nhiêu?

lợi nhuận theo sản phẩm vào ngày 28 tháng 7 năm 2013
#standardSQL
WITH ga_tables AS (
SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_20160801`
GROUP BY date

UNION ALL

SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_20160802`
GROUP BY date

UNION ALL

SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_20160803`
GROUP BY date

)
SELECT
date,
visits,
pageviews,
transactions,
revenue,
FROM ga_tables
ORDER BY date ASC

0

Lợi nhuận được tính bằng cách tìm ra chênh lệch giữa giá sản phẩm được bán và chi phí sản xuất sản phẩm. Thông tin này được lưu trên tập dữ liệu không phải của GA.

Khả năng sinh lời thực tế của mỗi sản phẩm (có tính đến tiền hoàn lại)

Bên dưới là tập lệnh sườn cho câu hỏi: Khả năng sinh lời thực tế của mỗi sản phẩm là bao nhiêu?

lợi nhuận thực tế theo sản phẩm
#standardSQL
WITH ga_tables AS (
SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_20160801`
GROUP BY date

UNION ALL

SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_20160802`
GROUP BY date

UNION ALL

SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_20160803`
GROUP BY date

)
SELECT
date,
visits,
pageviews,
transactions,
revenue,
FROM ga_tables
ORDER BY date ASC

1
  1. Đây là câu hỏi rất giống với câu hỏi Khả năng sinh lời của mỗi sản phẩm là bao nhiêu? Sự khác biệt duy nhất là trong tập dữ liệu không phải của Analytics trong truy vấn con màu xám và phép toán tính lợi nhuận thực tế trong dòng đầu tiên.
  2. Trong tập dữ liệu không phải của Analytics, bạn cũng đang tính toán tổng số tiền đã chi tiêu trên tiền hoàn lại (trong câu lệnh TODAY()5 của truy vấn con màu đỏ).
  3. Sau đó, bạn thực hiện phép toán trong dòng 1 để tìm lợi nhuận thực tế bằng cách lấy tổng lợi nhuận trừ đi doanh thu đã chi tiêu cho tiền hoàn lại.

Để biết thêm thông tin về truy vấn, vui lòng xem phần về khả năng sinh lời của từng sản phẩm.

Dưới đây là ví dụ về truy vấn sau Khả năng sinh lời thực tế của mỗi sản phẩm vào ngày 28 tháng 7 năm 2013 là bao nhiêu?

lợi nhuận thực tế của sản phẩm vào ngày 28 tháng 7 năm 2013
#standardSQL
WITH ga_tables AS (
SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_20160801`
GROUP BY date

UNION ALL

SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_20160802`
GROUP BY date

UNION ALL

SELECT
date,
SUM(totals.visits) AS visits,
SUM(totals.pageviews) AS pageviews,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_20160803`
GROUP BY date

)
SELECT
date,
visits,
pageviews,
transactions,
revenue,
FROM ga_tables
ORDER BY date ASC

3

Lợi nhuận thực tế sẽ tính đến khả năng sinh lời của sản phẩm sau khi xét đến sản phẩm được hoàn tiền lại. Để tính tổng doanh thu hoàn loại cho một sản phẩm:

tổng doanh thu hoàn lại cho một sản phẩm = ( giá của sản phẩm + giá vận chuyển trả lại cho sản phẩm ) * số lượng sản phẩm bị trả lại

Thông tin này có hữu ích không?

Chúng tôi có thể cải thiện trang này bằng cách nào?