Dù có Tableau, Power BI hay Looker, SQL vẫn là kỹ năng nền tảng vì nó cho khả năng truy vấn linh hoạt mà công cụ kéo-thả không làm được — nhà tuyển dụng dùng câu hỏi SQL để đánh giá tư duy logic, không chỉ ghi nhớ cú pháp.
"ROW_NUMBER(), RANK(), DENSE_RANK() khác nhau thế nào?" — ROW_NUMBER() luôn cho số thứ tự duy nhất dù giá trị trùng nhau; RANK() cho cùng hạng khi giá trị bằng nhau nhưng bỏ qua số tiếp theo (1,1,3); DENSE_RANK() cũng cho cùng hạng nhưng không bỏ số (1,1,2). Đây là câu hỏi phân biệt rõ ai thực sự hiểu window function.
"Tính running total (tổng luỹ kế) bằng SQL thế nào?" — Dùng SUM(amount) OVER (ORDER BY date) thay vì tự viết subquery phức tạp — biết dùng window function đúng chỗ là điểm cộng lớn.
"Query chạy trên bảng hàng triệu dòng bị chậm, bạn làm gì?" — Kiểm tra execution plan, xem có dùng index đúng cột filter/JOIN không, cân nhắc tạo bảng tổng hợp (aggregate table) trước nếu query này chạy lặp lại thường xuyên thay vì tính lại từ dữ liệu thô mỗi lần.
"Làm sao xử lý dữ liệu trùng lặp (duplicate) trong bảng?" — Dùng ROW_NUMBER() OVER (PARTITION BY ORDER BY ) để đánh số rồi lọc lấy dòng số 1, thay vì DISTINCT đơn giản (không kiểm soát được giữ bản ghi nào khi có khác biệt ở cột khác).
Nhà tuyển dụng hay đưa 1 bảng dữ liệu mẫu (đơn hàng, người dùng...) và yêu cầu viết query trả lời câu hỏi kinh doanh cụ thể (vd. "top 5 khách hàng chi tiêu nhiều nhất theo từng tháng"). Điều quan trọng là hỏi lại để làm rõ yêu cầu trước khi viết query — thể hiện tư duy phân tích, không phải chỉ kỹ năng code.
Quên xử lý NULL đúng cách (vd. COUNT(column) bỏ qua NULL nhưng COUNT(*) thì không), nhầm WHERE với HAVING (WHERE lọc trước khi group, HAVING lọc sau khi group), và quên rằng JOIN có thể nhân bản dòng nếu quan hệ không phải 1-1.