User đi qua ba bước trước khi trả tiền: lượt ghé (một lần có người vào xem website) → user tiềm năng (người để lại liên hệ, như điền form hoặc nhắn tin hỏi giá) → đơn hàng (user chốt mua và trả tiền). Ở tuần 1:
lượt ghé ██████████████████████████████ 2.983 user tiềm năng ████████ 127 đơn hàng ██ 27
#weekly là gì? Một bảng tạm đúng 52 dòng — mỗi dòng tóm gọn một tuần: bao nhiêu follow, bao nhiêu lượt ghé, bao nhiêu lead, bao nhiêu đơn, bao nhiêu tiền. Mọi truy vấn Q1–Q4 trong bài đều đọc từ bảng này.
Hình dạng: 52 dòng × 8 cột
| Cột | Nghĩa |
|---|---|
week_id | Số thứ tự tuần (1–52) |
followers | Số follow tích lũy cuối tuần đó |
sessions | Lượt ghé trong tuần |
leads | Số lead trong tuần |
orders | Số đơn trong tuần |
revenue_vnd | Doanh thu trong tuần (đồng) |
revenue_m | Doanh thu tính bằng triệu (revenue_vnd ÷ 1.000.000) |
lead_rate | Tỷ lệ user tiềm năng (%) (leads ÷ sessions × 100) |
| week_id | followers | sessions | leads | orders | revenue_vnd | revenue_m | lead_rate |
|---|---|---|---|---|---|---|---|
| 1 | 8.537 | 2.983 | 127 | 27 | 67.500.000 | 67,5 | 4,26 |
| 2 | 8.659 | 2.877 | 112 | 20 | 50.000.000 | 50,0 | 3,89 |
| 17 | 10.689 | 3.014 | 63 | 12 | 30.000.000 | 30,0 | 2,09 |
| 32 | 12.564 | 2.907 | 111 | 23 | 57.500.000 | 57,5 | 3,82 |
| 52 | 15.185 | 2.388 | 88 | 16 | 40.000.000 | 40,0 | 3,69 |
-- Tạo một lần, dùng cho mọi truy vấn Q1–Q4
SELECT
w.week_id,
fs.followers, ss.sessions, ld.leads, od.orders,
od.revenue_vnd,
od.revenue_vnd / 1000000.0 AS revenue_m,
100.0 * ld.leads / ss.sessions AS lead_rate
INTO #weekly
FROM dbo.Week w
JOIN dbo.FollowerSnapshot fs ON fs.week_id = w.week_id
JOIN dbo.SessionStat ss ON ss.week_id = w.week_id
JOIN (SELECT week_id, COUNT(*) AS leads
FROM dbo.Lead GROUP BY week_id) ld ON ld.week_id = w.week_id
JOIN (SELECT week_id, COUNT(*) AS orders, SUM(amount) AS revenue_vnd
FROM dbo.[Order] GROUP BY week_id) od ON od.week_id = w.week_id;
CREATE UNIQUE CLUSTERED INDEX ux_weekly_week_id ON #weekly (week_id);
-- Q1. Phễu tuần 1: lượt ghé -> lead -> đơn -> tiền
SELECT
week_id, sessions, leads, orders, revenue_vnd,
CAST(lead_rate AS DECIMAL(5,2)) AS lead_rate_pct
FROM #weekly
WHERE week_id = 1;
| week_id | sessions | leads | orders | revenue_vnd | lead_rate_pct |
|---|---|---|---|---|---|
| 1 | 2.983 | 127 | 27 | 67.500.000 | 4,26 |
Tuấn đăng bài đều đặn mỗi ngày. Người theo dõi tăng đều khoảng hơn 100 người/tuần. Tiền bán cũng về đều đặn theo mỗi tuần.
Bấm Chạy quy trình để 16 tuần trôi qua. Theo dõi: đường follow (xanh) và đường doanh thu (đỏ gạch) có đi cùng nhau không?
Tuần 17 bắt đầu với follow. Quảng cáo của Tuấn kéo về rất nhiều lượt xem và like. Trên dashboard, mọi thứ trông vẫn bình thường.
Lần này hãy nhìn khoảng cách giữa hai đường: đường follow có thay đổi gì khi tiền về ít đi không?
Quảng cáo được nhắm lại đúng đối tượng hơn.
Quan sát đường doanh thu có biến động theo đường tỷ lệ user tiềm năng không?
Ba giai đoạn của bước 1–2–3 được tính bằng một truy vấn duy nhất:
WITH phased AS
(
SELECT *,
CASE WHEN week_id <= 16 THEN 'Giai đoạn 1 (tuần 1-16)'
WHEN week_id <= 31 THEN 'Giai đoạn 2 (tuần 17-31)'
ELSE 'Giai đoạn 3 (tuần 32-52)' END AS phase,
CASE WHEN week_id <= 16 THEN 1
WHEN week_id <= 31 THEN 2
ELSE 3 END AS phase_no
FROM #weekly
)
SELECT
phase,
CAST(AVG(revenue_m) AS DECIMAL(6,2)) AS avg_revenue_m_wk,
CAST(100.0 * SUM(leads) / SUM(sessions)
AS DECIMAL(5,2)) AS lead_rate_pct,
MIN(followers) AS followers_start,
MAX(followers) AS followers_end,
CAST(100.0 * (MAX(followers) - MIN(followers))
/ MIN(followers) AS DECIMAL(5,1)) AS follower_growth_pct,
SUM(orders) AS total_orders,
CAST(SUM(revenue_m) AS DECIMAL(8,1)) AS total_revenue_m
FROM phased
GROUP BY phase, phase_no
ORDER BY phase_no;
| phase | Doanh thu TB (tr/tuần) | Tỷ lệ KTPN | Follow đầu → cuối | Tăng follow | Đơn | Tổng (tr) |
|---|---|---|---|---|---|---|
| Giai đoạn 1 (tuần 1–16) | 63,13 | 4,13% | 8.537 → 10.559 | +23,7% | 404 | 1.010,0 |
| Giai đoạn 2 (tuần 17–31) | 30,00 | 2,04% | 10.689 → 12.432 | +16,3% | 180 | 450,0 |
| Giai đoạn 3 (tuần 32–52) | 51,90 | 3,94% | 12.564 → 15.185 | +20,9% | 436 | 1.090,0 |
Tương quan đo xem hai đại lượng có đi cùng nhau hay không. Con số này ký hiệu là r. Giá trị của r luôn nằm trong khoảng từ −1 đến +1.
r gần +1: hai đại lượng đi cùng chiều. Cái này tăng thì cái kia cũng tăng.
r gần −1: hai đại lượng đi ngược chiều. Cái này tăng thì cái kia giảm.
r gần 0: hai đại lượng gần như không liên quan. Biết số này cũng không đoán được số kia.
Cách đọc trên biểu đồ chấm: mỗi chấm là một tuần. Các chấm xếp thành dải đi lên thì r dương. Các chấm rải lung tung thì r gần 0.
| Giá trị r | Ý nghĩa | Ví dụ trong bài |
|---|---|---|
| +0,88 | Đi cùng nhau rất mạnh | Tỷ lệ user tiềm năng và doanh thu |
| +0,42 | Đi cùng nhau mức vừa | Lượt ghé và doanh thu |
| −0,20 | Gần như không liên quan | Follow và doanh thu |
| −0,68 | Đi ngược nhau rõ | Follow và lượt ghé |
Tuần t: tỷ lệ user tiềm năng ───► Tuần t+1: doanh thu r = +0,68 → báo sớm được 1 tuần Tuần t: follow ───► Tuần t+1: doanh thu r = −0,17 → không báo được gì
-- Q3. Năm cặp tương quan trên 52 tuần (một nhánh mẫu)
SELECT 'r(follow, doanh thu)' AS metric_pair,
CAST((AVG(f * revenue_m) - AVG(f) * AVG(revenue_m))
/ NULLIF(STDEVP(f) * STDEVP(revenue_m), 0)
AS DECIMAL(5,2)) AS pearson_r
FROM (SELECT CAST(followers AS FLOAT) AS f, revenue_m FROM #weekly) t;
-- Q4. Lag 1 tuần: chỉ số tuần t so với doanh thu tuần t+1
WITH pairs AS
(
SELECT cur.lead_rate AS lead_rate_t,
cur.followers AS followers_t,
nxt.revenue_m AS revenue_next
FROM #weekly cur
JOIN #weekly nxt ON nxt.week_id = cur.week_id + 1
)
SELECT CAST((AVG(lead_rate_t * revenue_next) - AVG(lead_rate_t) * AVG(revenue_next))
/ NULLIF(STDEVP(lead_rate_t) * STDEVP(revenue_next), 0)
AS DECIMAL(5,2)) AS pearson_r
FROM pairs;
| Cặp chỉ số | pearson_r | Đọc |
|---|---|---|
| r(follow, doanh thu) | −0,20 | Gần như không liên quan |
| r(tỷ lệ KTPN, doanh thu) | +0,88 | Đi cùng nhau rất mạnh |
| r(lượt ghé, doanh thu) | +0,42 | Mức vừa |
| r(lead, doanh thu) | +0,97 | Rất chặt |
| r(follow, lượt ghé) | −0,68 | Đi ngược nhau rõ |
| r(tỷ lệ KTPN tuần t, tiền tuần t+1) | +0,68 | Báo sớm được một tuần |
| r(follow tuần t, tiền tuần t+1) | −0,17 | Không báo được gì |