Bộ Câu Hỏi Phỏng Vấn Data Analyst 2026 Kèm Câu Trả Lời Chi Tiết - SQL Viết Được Là Chưa Đủ
Mục lục bài viết
1. Tại Sao SQL Không Còn Là Tất Cả?
Nếu bạn nghĩ rằng chỉ cần viết tốt SQL là đủ để pass phỏng vấn Data Analyst - tin tôi đi, bạn đang sắp gặp bất ngờ.
Theo khảo sát của JobsbyCulture (2026), 85% các buổi phỏng vấn Data Analyst hiện nay bao gồm ít nhất một bài SQL thực hành, nhưng chỉ 38% ứng viên được tuyển đến từ vòng technical đầu tiên. Lý do? Hầu hết ứng viên giỏi SQL nhưng lại yếu ở Python, case study phân tích, hoặc không biết cách trình bày suy nghĩ trước nhà tuyển dụng.
Data Analyst 2026 không còn là "người viết query". Họ là người có thể:
- Dùng SQL để trích xuất dữ liệu
- Dùng Python để làm sạch và phân tích
- Trình bày insight bằng câu chuyện có số liệu
- Đặt câu hỏi đúng trước khi đào sâu phân tích
Bài viết này tổng hợp 50 câu hỏi phỏng vấn Data Analyst 2026 kèm đáp án chi tiết - từ cơ bản đến nâng cao - giúp bạn không chỉ trả lời được mà còn tỏa sáng trong mắt nhà tuyển dụng.
👉 Luyện tập trả lời câu hỏi SQL phỏng vấn Data Analyst tại X Interview để phản xạ nhanh hơn khi gặp câu hỏi thực tế!
2. Nhóm 1: Câu Hỏi SQL - Từ Cơ Bản Đến Chuyên Sâu
SQL vẫn là kỹ năng được test nhiều nhất. Nhưng cách hỏi đã thay đổi - không còn chỉ là "viết SELECT" mà còn là "tối ưu query" và "xử lý edge case".
Câu 1: INNER JOIN vs LEFT JOIN - Khi Nào Dùng?
Câu hỏi thực tế: "Cho bảng customers và orders. Tìm tất cả khách hàng đã đặt hàng ít nhất 1 lần."
Đáp án chi tiết:
`sql
-- LEFT JOIN để giữ tất cả khách hàng, kể cả chưa có đơn
SELECT c.customer_id, c.customer_name, COUNT(o.order_id) as total_orders
FROM customers c
LEFT JOIN orders o ON c.customer_id = o.customer_id
GROUP BY c.customer_id, c.customer_name
HAVING COUNT(o.order_id) > 0;
`
Giải thích: LEFT JOIN giữ tất cả các dòng bên trái (customers), điền NULL nếu không có match bên phải (orders). Sau đó GROUP BY và HAVING lọc ra những ai có đơn.
Điểm đánh giá: Nhà tuyển dụng muốn thấy bạn hiểu sự khác biệt giữa INNER và LEFT - không chỉ viết đúng mà còn giải thích được tại sao dùng JOIN này thay vì JOIN kia.
Câu 2: Window Function - Cách Dùng ROW_NUMBER, RANK, DENSE_RANK
Câu hỏi thực tế: "Tìm nhân viên có mức lương cao thứ 2 trong công ty."
Đáp án chi tiết:
`sql
-- DENSE_RANK giữ tie (hai người cùng lương cao nhất thì người thứ 3 vẫn là rank 2)
SELECT employee_id, employee_name, salary
FROM (
SELECT employee_id, employee_name, salary,
DENSE_RANK() OVER (ORDER BY salary DESC) as rank_val
FROM employees
) ranked
WHERE rank_val = 2;
`
Tại sao không dùng RANK()? RANK() bỏ qua bậc khi có tie - nếu 2 người cùng rank 1, người tiếp theo sẽ là rank 3. DENSE_RANK() giữ thứ tự liên tục: 1, 1, 2.
Lưu ý: ROW_NUMBER() cũng không để tie - mỗi dòng có số duy nhất. Dùng DENSE_RANK() khi muốn giữ tie.
Câu 3: CTE (Common Table Expression) - Khi Nào Cần?
Câu hỏi thực tế: "Tính tổng doanh thu theo tháng, sau đó so sánh month-over-month growth."
Đáp án chi tiết:
`sql
WITH monthly_revenue AS (
SELECT
DATE_TRUNC('month', order_date) as month,
SUM(revenue) as total_revenue
FROM orders
GROUP BY DATE_TRUNC('month', order_date)
)
SELECT
month,
total_revenue,
LAG(total_revenue) OVER (ORDER BY month) as prev_month,
ROUND(
(total_revenue - LAG(total_revenue) OVER (ORDER BY month))
/ LAG(total_revenue) OVER (ORDER BY month) * 100, 2
) as growth_pct
FROM monthly_revenue
ORDER BY month;
`
Giải thích: CTE giúp code sạch hơn và dễ maintain. Thay vì subquery phức tạp, bạn tạo temporary result set rồi query trên đó.
👉 Thử viết CTE và Window Function trên bộ câu hỏi Data Analyst để nắm vững kiến thức!
3. Nhóm 2: Câu Hỏi Python & Pandas - Xử Lý Data Thực Tế
Python không còn là "nice to have" - nó là "must have" cho Data Analyst 2026.
Câu 4: Làm Sạch Data Bằng Pandas
Câu hỏi thực tế: "Data có 100K rows, nhiều missing values và duplicates. Bạn xử lý thế nào?"
Đáp án chi tiết:
`python
import pandas as pd
# 1. Kiểm tra missing values
print(df.isnull().sum())
# 2. Xử lý missing values
# Option A: Drop nếu < 5% missing
df_clean = df.dropna(subset=['critical_columns'])
# Option B: Impute nếu > 5% missing
df['age'].fillna(df['age'].median(), inplace=True)
# 3. Xử lý duplicates
df_clean = df_clean.drop_duplicates()
# 4. Kiểm tra lại
print(f"Rows before: {len(df)}, after: {len(df_clean)}")
`
Giải thích: Quy tắc đơn giản: < 5% missing → drop; > 5% missing → impute (median cho numerical, mode cho categorical). Luôn kiểm tra duplicates trước khi phân tích.
Câu 5: Data Transformation - Pivot, Melt, GroupBy
Câu hỏi thực tế: "Data dạng long format, cần convert sang wide format để tạo pivot table."
Đáp án chi tiết:
`python
# Long to Wide
pivot = df.pivot_table(
values='revenue',
index='product',
columns='month',
aggfunc='sum'
)
# Wide to Long
melted = pd.melt(
pivot.reset_index(),
id_vars=['product'],
var_name='month',
value_name='revenue'
)
`
Lưu ý: pivot_table() mạnh hơn pivot() vì hỗ trợ aggfunc. Dùng reset_index() trước melt() để giữ index làm column.
4. Nhóm 3: Câu Hỏi Statistics - Logic Đằng Sau Số Liệu
Statistics phân biệt Data Analyst với "người pull data".
Câu 6: A/B Testing - P-Value Là Gì?
Câu hỏi thực tế: "Bạn chạy A/B test cho landing page mới. P-value = 0.03. Kết luận?"
Đáp án chi tiết:
- P-value < 0.05: Có bằng chứng thống kê rằng phiên bản tốt hơn
- P-value > 0.05: Không đủ bằng chứng để kết luận
- Lưu ý quan trọng: P-value KHÔNG cho biết "độ tin cậy" - nó cho biết xác suất quan sát được kết quả này nếu null hypothesis đúng
Ví dụ thực tế:
- P-value = 0.03, conversion rate A = 10%, B = 12%
- Kết luận: B tốt hơn A với 95% confidence
- Hành động: Triển khai phiên bản B
Câu 7: Confidence Interval - Khoảng An Toàn
Câu hỏi thực tế: "Mean revenue = $50, 95% CI = [$45, $55]. Ý nghĩa?"
Đáp án chi tiết:
- Nếu lặp lại experiment 100 lần, 95 lần true mean nằm trong [$45, $55]
- CI hẹp = estimate chính xác
- CI rộng = cần thêm data
Công cụ tính CI:
`python
from scipy import stats
import numpy as np
data = np.random.normal(50, 10, 1000)
mean = np.mean(data)
se = stats.sem(data)
ci = stats.t.interval(0.95, len(data)-1, loc=mean, scale=se)
print(f"Mean: {mean:.2f}, 95% CI: [{ci[0]:.2f}, {ci[1]:.2f}]")
`
5. Nhóm 4: Câu Hỏi Case Study - Giải Quyết Vấn Đề Thực Tế
Case study đánh giá tư duy phân tích hơn là kiến thức kỹ thuật.
Câu 8: Metric Selection - Chọn Đúng Số Đo
Câu hỏi thực tế: "CEO muốn tăng revenue 20%. Bạn sẽ track metric nào?"
Đáp án chi tiết:
Framework AARRR:
- Acquisition: Number of new users
- Activation: % users completing key action
- Revenue: Average revenue per user (ARPU)
- Retention: % users returning after 30 days
- Referral: Number of referrals per user
Khi CEO nói "tăng revenue 20%":
- Tách revenue = users × ARPU
- Phân tích: Tăng users? Tăng ARPU? Hay cả hai?
- Đưa ra recommendation cụ thể
👉 Thực hành case study Data Analyst tại X Interview để xây dựng tư duy phân tích!
Câu 9: Root Cause Analysis - Tại Sao Số Giảm?
Câu hỏi thực tế: "Revenue tuần này giảm 15%. Bạn điều tra thế nào?"
Đáp án chi tiết:
Framework 5 Whys:
- Tại sao revenue giảm? → Conversion rate giảm
- Tại sao conversion giảm? → Landing page bounce rate tăng
- Tại sao bounce rate tăng? → Page load time tăng từ 2s lên 5s
- Tại sao load time tăng? → New image carousel quá nặng
- Tại sao carousel nặng? → Chưa optimize image size
Hành động: Optimize images → load time giảm → bounce rate giảm → conversion tăng → revenue tăng
6. Nhóm 5: Câu Hỏi Behavioral - Đánh Giá Cách Làm Việc
Behavioral questions đánh giá soft skills và cultural fit.
Câu 10: STAR Method - Kể Câu Chuyện Có Cấu Trúc
Câu hỏi thực tế: "Kể về lần bạn xử lý data conflict giữa hai team."
Đáp án chi tiết:
- S (Situation): Marketing và Sales có data conflict - Marketing nói conversion rate = 5%, Sales nói = 3%
- T (Task): Tìm ra nguyên nhân conflict và propose solution
- A (Action): Tạo dashboard so sánh data source, phát hiện Marketing dùng last-click attribution, Sales dùng first-click, propose unified attribution model
- R (Result): Hai team agrees on multi-touch attribution, data sync tốt hơn 40%
Câu 11: Failure Story - Sai Lầm Trong Phân Tích
Câu hỏi thực tế: "Kể về lần bạn phân tích sai kết quả."
Đáp án chi tiết:
- S (Situation): Phân tích customer segmentation, propose chiến lược upsell
- T (Task): Presentation cho leadership team
- A (Action): Phát hiện sai data input - dùng nhầm column "revenue" thay vì "profit"
- R (Result): Presentation lại với đúng data, học được lesson: luôn validate data trước khi presentation
Lesson learned: Luôn double-check data source và column name trước khi phân tích quan trọng.
7. Nhóm 6: Câu Hỏi Take-Home Project - Chuẩn Bị Từ Đầu
Take-home project đánh giá ability to deliver end-to-end.
Câu 12: Khi Nào Dùng Python vs SQL?
Câu hỏi thực tế: "Khi nào bạn chọn Python thay vì SQL cho một phân tích?"
Đáp án chi tiết:
| Trường hợp | Tool | Lý do |
|---|---|---|
| Data < 1 triệu rows, có sẵn in DB | SQL | Nhanh, không cần load vào memory |
| Data > 1 triệu rows | Python (pandas/dask) | Scale được, xử lý trên disk |
| Complex ML/Stats models | Python | Thư viện phong phú (sklearn, scipy) |
| Data cleaning nhiều bước | Python | E2E pipeline, repeatable |
| Quick ad-hoc exploration | SQL (hoặc Python REPL) | Tùy preference và data size |
| Visualization | Python (matplotlib/seaborn) hoặc Tableau | Tùy complexity |
Thực tế: Không phải chọn một. Data Analyst giỏi dùng cả hai - SQL để extract, Python để analyze.
8. Checklist Chuẩn Bị Trước Phỏng Vấn Data Analyst 2026
- [ ] SQL: JOINs, Window Functions, CTEs, GROUP BY - thực hành với dataset thực
- [ ] Python: Pandas, data cleaning, basic visualization
- [ ] Statistics: A/B testing, p-value, confidence interval
- [ ] Business sense: Metric selection, case study frameworks
- [ ] Communication: Explain complex findings simply
- [ ] Portfolio: Chuẩn bị 2-3 projects để present
Pro tip: Thực hành với dataset thực (Kaggle, public data) tốt hơn nhiều so với chỉ xem câu hỏi. Try LeetCode SQL, Kaggle datasets, hoặc build dashboard với sample data.
👉 Xem thêm bộ câu hỏi phỏng vấn Ngành IT, Web Developer, và Data Engineer & AI/ML Engineer để mở rộng kiến thức.
9. Kết Luận
SQL viết được là chưa đủ - nhưng SQL viết KHÔNG được thì không đủ luôn.
Data Analyst 2026 cần:
- SQL để trích xuất và xử lý data nhanh
- Python để phân tích sâu và tự động hóa
- Statistics để đưa ra kết luận có cơ sở
- Communication để translate insights thành action
Hãy ôn tập những câu hỏi trên, thực hành với dataset thực, và đặc biệt - học cách diễn đạt suy nghĩ một cách có cấu trúc. Đó mới là thứ giúp bạn khác biệt trong mắt nhà tuyển dụng.
10. Tài Liệu Tham Khảo
- JobsbyCulture - 50 Data Analyst Interview Questions & Answers (2026)
- Dataquest - 40+ Data Analyst Interview Questions and Answers for 2026
- Coursera - Data Analyst Interview Questions & Prep Guide 2026
- LockedIn AI - Data Analyst Interview Questions: 2026 Prep Essentials
👉 Luyện tập phỏng vấn Data Analyst với AI tại X Interview - nhận phản hồi tức thì và cải thiện kỹ năng mỗi ngày!
Tags: Data Analyst, phỏng vấn Data Analyst, câu hỏi phỏng vấn SQL, Python phỏng vấn, Data Analyst 2026, tuyển dụng data, interview questions