Top 25 Câu Hỏi Phỏng Vấn Data Analytics Năm 2026

Hướng dẫn chi tiết 25 câu hỏi phỏng vấn Data Analyst thường gặp năm 2026, bao gồm SQL, Python, thống kê, visualization và behavioral questions kèm code examples.

Minh họa các câu hỏi phỏng vấn Data Analytics với biểu đồ SQL, Python và dashboard

Trong bối cảnh doanh nghiệp ngày càng phụ thuộc vào dữ liệu để đưa ra quyết định chiến lược, vai trò của Data Analyst trở nên thiết yếu hơn bao giờ hết. Năm 2026 chứng kiến sự cạnh tranh gay gắt trong thị trường tuyển dụng phân tích dữ liệu, đòi hỏi ứng viên không chỉ thành thạo kỹ năng kỹ thuật mà còn phải hiểu sâu về business context và khả năng truyền đạt insight hiệu quả. Bài viết này tổng hợp 25 câu hỏi phỏng vấn Data Analytics phổ biến nhất, kèm theo hướng dẫn trả lời chi tiết giúp ứng viên chuẩn bị tốt nhất cho buổi phỏng vấn.

Lời khuyên từ chuyên gia: Nhà tuyển dụng không chỉ đánh giá câu trả lời đúng hay sai, mà còn quan tâm đến cách tiếp cận vấn đề và khả năng giải thích logic của ứng viên. Hãy tập trung vào việc trình bày quá trình tư duy thay vì chỉ đưa ra kết quả cuối cùng.

Câu hỏi SQL trong phỏng vấn Data Analyst

SQL vẫn là ngôn ngữ không thể thiếu đối với bất kỳ Data Analyst nào. Phần lớn các buổi phỏng vấn đều bao gồm câu hỏi về SQL, từ cơ bản đến nâng cao.

1. Phân biệt WHERE và HAVING trong SQL

Đây là câu hỏi kinh điển nhưng nhiều ứng viên vẫn nhầm lẫn. WHERE lọc dữ liệu ở cấp độ từng dòng (row-level) trước khi thực hiện GROUP BY, trong khi HAVING lọc dữ liệu ở cấp độ nhóm (group-level) sau khi đã tổng hợp.

sql
-- monthly_revenue.sql
SELECT
  DATE_TRUNC('month', order_date) AS month,
  SUM(amount)                     AS revenue
FROM orders
WHERE status = 'completed'          -- row-level filter
GROUP BY month
HAVING SUM(amount) > 10000;         -- group-level filter

Trong ví dụ trên, WHERE loại bỏ các đơn hàng chưa hoàn thành trước khi tính tổng, còn HAVING chỉ giữ lại những tháng có doanh thu vượt 10,000.

2. Window Functions và ứng dụng thực tế

Window functions cho phép thực hiện các phép tính trên một tập hợp các dòng liên quan đến dòng hiện tại mà không cần GROUP BY. Đây là công cụ mạnh mẽ để phân tích xu hướng và so sánh.

sql
-- user_ranking.sql
SELECT
  user_id,
  purchase_date,
  amount,
  ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY purchase_date) AS purchase_rank,
  SUM(amount)   OVER (PARTITION BY user_id ORDER BY purchase_date) AS running_total,
  LAG(amount)   OVER (PARTITION BY user_id ORDER BY purchase_date) AS prev_amount
FROM purchases;

ROW_NUMBER đánh số thứ tự mua hàng của từng user, SUM với window frame tính tổng tích lũy, và LAG lấy giá trị của lần mua trước đó. Những hàm này đặc biệt hữu ích trong phân tích cohort và customer journey.

3. Phát hiện và xử lý dữ liệu trùng lặp

Dữ liệu thực tế thường chứa bản ghi trùng lặp do lỗi hệ thống hoặc duplicate events. Việc xác định và loại bỏ chúng là kỹ năng quan trọng.

sql
-- deduplicate_events.sql
WITH ranked AS (
  SELECT *,
    ROW_NUMBER() OVER (
      PARTITION BY user_id, event_type, DATE_TRUNC('minute', created_at)
      ORDER BY created_at
    ) AS rn
  FROM events
)
SELECT * FROM ranked WHERE rn = 1;

Kỹ thuật này sử dụng CTE kết hợp ROW_NUMBER để giữ lại bản ghi đầu tiên trong mỗi nhóm trùng lặp, xác định bởi user_id, event_type và khoảng thời gian một phút.

4. Phân tích Cohort Retention

Cohort analysis là phương pháp phân tích nhóm người dùng theo thời điểm họ bắt đầu sử dụng sản phẩm. Đây là metric quan trọng để đánh giá product-market fit.

sql
-- weekly_cohort_retention.sql
WITH cohorts AS (
  SELECT
    user_id,
    DATE_TRUNC('week', MIN(event_date)) AS cohort_week
  FROM user_events
  GROUP BY user_id
),
activity AS (
  SELECT
    c.cohort_week,
    DATE_TRUNC('week', e.event_date) AS active_week,
    COUNT(DISTINCT e.user_id)        AS active_users
  FROM user_events e
  JOIN cohorts c ON c.user_id = e.user_id
  GROUP BY c.cohort_week, DATE_TRUNC('week', e.event_date)
)
SELECT
  cohort_week,
  EXTRACT(WEEK FROM active_week - cohort_week) AS weeks_since_signup,
  active_users
FROM activity
ORDER BY cohort_week, weeks_since_signup;

Query này tạo cohort theo tuần đăng ký và theo dõi số user active qua từng tuần sau đó, cho phép xây dựng bảng retention matrix.

5. Common Table Expressions (CTEs) và tổ chức query

CTEs giúp chia nhỏ query phức tạp thành các phần logic, dễ đọc và bảo trì. Nhà tuyển dụng đánh giá cao ứng viên viết code có cấu trúc rõ ràng, vì đây là dấu hiệu của tư duy hệ thống và khả năng làm việc nhóm.

Sẵn sàng chinh phục phỏng vấn Data Analytics?

Luyện tập với mô phỏng tương tác, flashcards và bài kiểm tra kỹ thuật.

Câu hỏi Python cho Data Analytics

Python đã trở thành công cụ phân tích dữ liệu phổ biến nhất, đặc biệt với ecosystem pandas, numpy và scikit-learn.

6. Xử lý dữ liệu thiếu (Missing Values)

Dữ liệu thực tế hiếm khi hoàn hảo. Cách xử lý missing values phản ánh sự hiểu biết của ứng viên về data quality và business context.

python
# handle_missing.py
import pandas as pd
import numpy as np

df = pd.read_csv('sales.csv')

# Inspect the extent of missing data
print(df.isnull().sum())
print(df.isnull().mean().round(3))  # percentage per column

# Strategy 1: drop rows where critical columns are null
df_clean = df.dropna(subset=['customer_id', 'amount'])

# Strategy 2: fill numeric columns with median (robust to outliers)
df['amount'] = df['amount'].fillna(df['amount'].median())

# Strategy 3: fill categorical columns with the mode
df['region'] = df['region'].fillna(df['region'].mode()[0])

Điểm mấu chốt là không có chiến lược universal. Quyết định drop hay fill phụ thuộc vào tỷ lệ missing, tầm quan trọng của cột, và mục đích phân tích.

7. Merge, Join và Concat trong Pandas

Kết hợp dữ liệu từ nhiều nguồn là tác vụ hàng ngày của Data Analyst. Hiểu rõ sự khác biệt giữa các phương thức là điều cần thiết.

python
# combine_dataframes.py
import pandas as pd

orders = pd.read_csv('orders.csv')
customers = pd.read_csv('customers.csv')

# Key-based merge (equivalent to SQL JOIN)
result = orders.merge(customers, on='customer_id', how='left')

# Stack rows from multiple sources
all_events = pd.concat([events_q1, events_q2], ignore_index=True)

# Add columns side-by-side (same row count required)
combined = pd.concat([features, labels], axis=1)

merge() hoạt động như SQL JOIN dựa trên key, concat() với axis=0 ghép theo chiều dọc (thêm rows), và axis=1 ghép theo chiều ngang (thêm columns).

8. GroupBy, Agg và Transform

Ba phương thức này là nền tảng của exploratory data analysis trong pandas, cho phép tổng hợp và biến đổi dữ liệu linh hoạt.

python
# sales_analysis.py
import pandas as pd

df = pd.read_csv('transactions.csv', parse_dates=['date'])

# Monthly revenue by product category
monthly = (
    df.groupby([pd.Grouper(key='date', freq='M'), 'category'])
    .agg(revenue=('amount', 'sum'), orders=('order_id', 'nunique'))
    .reset_index()
)

# Add a column with each category's share of total monthly revenue
monthly['share'] = (
    monthly.groupby('date')['revenue']
    .transform(lambda x: x / x.sum())
    .round(4)
)

print(monthly.head(10))

agg() trả về DataFrame đã thu gọn, trong khi transform() giữ nguyên shape ban đầu, rất hữu ích khi cần tính tỷ lệ phần trăm hoặc chuẩn hóa trong từng nhóm.

9. Phát hiện Outliers

Outliers có thể là lỗi dữ liệu hoặc insight quan trọng. Phương pháp IQR (Interquartile Range) là cách tiếp cận robust phổ biến.

python
# detect_outliers.py
import pandas as pd
import numpy as np

df = pd.read_csv('transactions.csv')

# IQR method
Q1 = df['amount'].quantile(0.25)
Q3 = df['amount'].quantile(0.75)
IQR = Q3 - Q1
lower = Q1 - 1.5 * IQR
upper = Q3 + 1.5 * IQR

outliers = df[(df['amount'] < lower) | (df['amount'] > upper)]
print(f'Outliers found: {len(outliers)} ({len(outliers)/len(df)*100:.1f}%)')

# Cap instead of remove (winsorization)
df['amount_capped'] = df['amount'].clip(lower=lower, upper=upper)

Winsorization (capping) thường được ưu tiên hơn việc xóa outliers vì vẫn giữ được số lượng mẫu trong khi giảm ảnh hưởng của giá trị cực đoan.

Câu hỏi Thống kê trong Phỏng vấn

Kiến thức thống kê vững chắc giúp Data Analyst đưa ra kết luận có căn cứ từ dữ liệu.

10. P-value nghĩa là gì và khi nào p < 0.05 chưa đủ?

P-value là xác suất quan sát được kết quả như hiện tại (hoặc extreme hơn) nếu null hypothesis đúng. P < 0.05 thường được dùng làm ngưỡng, nhưng có những trường hợp cần thận trọng hơn.

Trong A/B testing với hàng triệu users, ngay cả những khác biệt nhỏ không có ý nghĩa thực tế cũng có thể đạt statistical significance. Ngược lại, với sample size nhỏ, effect size lớn có thể không significant. Do đó, cần kết hợp p-value với effect size và confidence interval để đưa ra quyết định.

11. Khi nào dùng Median thay vì Mean?

Mean (trung bình cộng) nhạy cảm với outliers, trong khi Median (trung vị) robust hơn. Với dữ liệu skewed như thu nhập, giá nhà, hoặc thời gian response, median thường phản ánh "typical value" tốt hơn.

12. Correlation không đồng nghĩa với Causation

Hai biến có tương quan cao không có nghĩa là biến này gây ra biến kia. Ví dụ kinh điển: doanh số kem và số vụ đuối nước đều tăng vào mùa hè, nhưng ăn kem không gây ra đuối nước. Cả hai đều bị ảnh hưởng bởi biến thứ ba là nhiệt độ.

Để chứng minh causation, cần thiết kế thí nghiệm có đối chứng (như A/B test) hoặc sử dụng các phương pháp causal inference như instrumental variables, difference-in-differences.

13. Type I và Type II Errors

Type I Error (False Positive) xảy ra khi reject null hypothesis trong khi nó đúng. Type II Error (False Negative) xảy ra khi fail to reject null hypothesis trong khi nó sai. Trong business context, cần cân nhắc chi phí của mỗi loại lỗi. Ví dụ, trong fraud detection, false negative (không phát hiện gian lận) có thể nghiêm trọng hơn false positive (cảnh báo nhầm).

Sẵn sàng chinh phục phỏng vấn Data Analytics?

Luyện tập với mô phỏng tương tác, flashcards và bài kiểm tra kỹ thuật.

Câu hỏi Power BI và Data Visualization

Khả năng trực quan hóa dữ liệu và xây dựng dashboard là kỹ năng thiết yếu để truyền đạt insight.

14. DAX so với SQL khác nhau như thế nào?

DAX (Data Analysis Expressions) được thiết kế cho columnar database và context-aware calculations trong Power BI. SQL xử lý row-based operations. DAX có các hàm như CALCULATE, FILTER, ALL cho phép tạo các measure phức tạp với filter context, điều mà SQL không thể làm trực tiếp.

15. Import Mode vs DirectQuery

Import mode tải dữ liệu vào bộ nhớ Power BI, cho performance tốt nhất nhưng cần refresh định kỳ. DirectQuery truy vấn trực tiếp source database, luôn có dữ liệu mới nhất nhưng phụ thuộc vào performance của database. Lựa chọn phụ thuộc vào kích thước dữ liệu, tần suất cập nhật, và khả năng của data source.

16. Khi nào dùng Bar Chart vs Line Chart?

Bar chart phù hợp cho so sánh categorical data hoặc discrete values. Line chart dành cho time series và hiển thị trend theo thời gian. Sai lầm phổ biến là dùng line chart cho dữ liệu không có thứ tự tự nhiên, khiến người xem hiểu nhầm có mối liên hệ giữa các điểm.

17. Tối ưu performance cho Dashboard

Dashboard chậm làm giảm adoption rate. Các best practices bao gồm: giảm số visuals trên một page, sử dụng summarized data thay vì raw data, tối ưu DAX measures, và implement incremental refresh cho dataset lớn.

Câu hỏi Behavioral theo Framework STAR

Kỹ năng mềm quyết định khả năng làm việc hiệu quả trong team và với stakeholders.

18. Mô tả một dự án phân tích dữ liệu có impact lớn

Sử dụng framework STAR: Situation (bối cảnh), Task (nhiệm vụ), Action (hành động), Result (kết quả). Quantify impact bằng số liệu cụ thể như tăng revenue X%, giảm churn Y%, hoặc tiết kiệm Z giờ/tuần.

19. Xử lý xung đột với Stakeholder như thế nào?

Xung đột thường xuất phát từ việc stakeholder không tin vào dữ liệu hoặc có kỳ vọng khác với kết quả phân tích. Cách tiếp cận hiệu quả là lắng nghe concerns, giải thích methodology, và tìm common ground dựa trên business objectives chung.

20. Giải thích kết quả kỹ thuật cho non-technical audience

Sử dụng analogy từ đời sống, focus vào business impact thay vì technical details, và visualize thay vì đưa ra con số khô khan. Ví dụ, thay vì nói "p-value = 0.03", có thể nói "chúng ta có độ tin cậy 97% rằng chiến dịch này thực sự tăng conversion rate".

Data Cleaning và ETL

Phần lớn thời gian của Data Analyst dành cho việc làm sạch và chuẩn bị dữ liệu.

21. Validation trong ETL Pipeline

Đảm bảo data quality sau mỗi bước transform là critical. Cần kiểm tra row count, null rates, và reconcile aggregate values.

python
# etl_validation.py
import pandas as pd

def validate_pipeline(source_df: pd.DataFrame, target_df: pd.DataFrame) -> dict:
    checks = {}
    # Row count match
    checks['row_count_match'] = len(source_df) == len(target_df)
    # Null rate on critical columns
    for col in ['user_id', 'event_date', 'amount']:
        null_rate = target_df[col].isnull().mean()
        checks[f'{col}_null_rate'] = round(null_rate, 4)
    # Revenue reconciliation
    source_total = source_df['amount'].sum()
    target_total = target_df['amount'].sum()
    checks['revenue_diff_pct'] = round(
        abs(source_total - target_total) / source_total * 100, 2
    )
    return checks

results = validate_pipeline(source, target)
for check, value in results.items():
    print(f'{check}: {value}')

22. Normalized vs Denormalized Data

Normalized data giảm redundancy và đảm bảo data integrity, phù hợp cho transactional systems. Denormalized data tối ưu cho read performance, thường dùng trong data warehouse và analytics. Data Analyst cần hiểu cả hai để design schema phù hợp với use case.

Advanced Analytics

23. Thiết kế và phân tích A/B Test

A/B testing yêu cầu xác định hypothesis, tính sample size cần thiết, chọn randomization unit, và define success metrics trước khi chạy test. Sau khi có kết quả, cần kiểm tra Sample Ratio Mismatch (SRM), segment analysis, và novelty effects trước khi kết luận.

24. Funnel Analysis và Conversion Optimization

Funnel analysis theo dõi user journey qua các bước như Visit, Sign-up, Activation, Purchase. Identify drop-off points lớn nhất và prioritize improvement efforts dựa trên potential impact. Ví dụ, nếu 70% users drop off giữa Sign-up và Activation, focus vào onboarding experience.

25. Xây dựng KPI Dashboard hiệu quả

Dashboard tốt phải answer specific business questions, không phải show mọi metric có thể. Principles bao gồm: hierarchy of information (quan trọng nhất ở top-left), consistent design language, actionable insights thay vì vanity metrics, và context cho comparison (vs last period, vs target).

Sẵn sàng chinh phục phỏng vấn Data Analytics?

Luyện tập với mô phỏng tương tác, flashcards và bài kiểm tra kỹ thuật.

Kết luận

Phỏng vấn Data Analyst năm 2026 đòi hỏi sự chuẩn bị toàn diện trên nhiều khía cạnh. Những điểm mấu chốt cần ghi nhớ:

  • SQL và Python vẫn là foundation, nhưng cần hiểu sâu thay vì chỉ biết syntax cơ bản
  • Thống kê giúp đưa ra kết luận có căn cứ và tránh các sai lầm phổ biến
  • Visualization không chỉ là tạo chart đẹp mà là truyền đạt insight hiệu quả
  • Soft skills quyết định khả năng tạo impact thực sự trong tổ chức
  • Business context luôn quan trọng hơn technical perfection

Cách tiếp cận tốt nhất là thực hành với dữ liệu thực, xây dựng portfolio projects, và liên tục cập nhật kiến thức theo xu hướng ngành.

Thẻ

#data-analytics
#interview
#sql
#python
#business-intelligence

Chia sẻ

Bài viết liên quan