Blog
5 phút đọc

Thủ Thuật SQL Nâng Cao Dành Cho Data Analyst

Các thủ thuật SQL nâng cao giúp bạn tiết kiệm thời gian và cải thiện hiệu suất cho bạn. Để có thể sử dụng SQL tốt cho các trường hợp nâng cao không phải là điều dễ dàng. Dưới đây là một số mẹo và thủ thuật SQL sẽ giúp bạn thực hiện truy vấn phức tạp hơn:

1. Common Table Expressions (CTE)

CTE cho phép bạn chia nhỏ các truy vấn phức tạp thành các phần nhỏ hơn. Bạn sẽ dễ quản lý bằng cách tạo các kết quả trung gian có thể được sử dụng lại nhiều lần trong một truy vấn.

Bạn có thể sử dụng các công cụ để thay thế các truy vấn lồng vào nhau. Vì vậy, thay vì truy vấn như này:

Bạn có thể làm như này:

2. Window Functions

Window Functions cho phép bạn thực hiện các phép tính trên các hàng trong tập hợp. Kết quả truy vấn mà không cần self-join hoặc subqueries.

Trong ví dụ trên, cứ xuất hiện thêm một đơn hàng thì sẽ có một hàng cho mỗi đơn, số tiền của khách hàng tương ứng với số tiền phải trả cho đến thời điểm hiện tại.

3. Pivot Tables

Pivot Tables cho phép chuyển đổi hàng thành cột, giúp cho việc phân tích dữ liệu dễ dàng hơn trong một số tình huống nhất định.

Giả sử bạn có bảng sau:

Và bạn muốn tạo một bảng như bên dưới:

Bạn có thể làm đó với truy vấn sau:

Chúng hoạt động giống như Pivot Tables Excel, như bạn có thể thấy, quá trình này sẽ thủ công nếu bạn có nhiều giá trị khác nhau trong các cột (trong trường hợp này là “year”).

4. Recursive Queries

Recursive Queries cho phép bạn truy vấn cấu trúc dữ liệu phân cấp hoặc dạng cây, chẳng hạn như sơ đồ tổ chức hoặc hệ thống tệp.

Hãy tưởng tượng một bảng employee hiển thị một hệ thống phân cấp:

Nếu bạn cần biết cấp bậc của từng nhân viên, bạn có thể sử dụng đoạn code sau:

Hệ thống sẽ trả về kết quả sau:

Từ đó bạn có thể xây dựng các thứ tự tương ứng như 1:Giám đốc điều hành, 2:Giám đốc, 3:Quản lý,…

5. Dynamic SQL

Dynamic SQL cho phép bạn tạo và thực thi các câu lệnh SQL một cách linh hoạt trong thời gian chạy, dựa trên đầu vào của người dùng hoặc các điều kiện khác.

Điều này có thể đặc biệt hữu ích nếu bạn cần thử nhiều giá trị cho một truy vấn và giá trị này tự lặp lại nhiều lần trong truy vấn. Tính khả dụng và cú pháp của tính năng này sẽ phụ thuộc vào phiên bản SQL bạn sử dụng.

6. Materialized Views

Materialized Views cho phép bạn tính toán trước và lưu trữ kết quả của truy vấn để các truy vấn tiếp theo có thể truy cập kết quả nhanh hơn. Điều này có thể hữu ích để cải thiện hiệu suất khi làm việc với các tập dữ liệu lớn.

Bạn có thể thắc mắc đâu là sự khác biệt giữa một Materialized view và một “standard” view. Chúng là hai phương pháp khác nhau để “đóng gói” và tái sử dụng logic truy vấn phức tạp trong cơ sở dữ liệu. Materialized Views là tập hợp kết quả được lưu trữ và tính toán trước, còn standard view chỉ tạo một truy vấn đã được lưu trữ.

7. Unnest + Generate_array

Giả sử bạn muốn tạo ra một danh sách tất cả các khuyến mãi có thể có từ 10% – 50%, mỗi khuyến mãi cách nhau 5%. Đây là cách để bạn có thể thực hiện điều đó:

Thủ thuật này có thể hữu ích để chèn vào một cross join với bảng product, để tạo ra danh sách tất cả các khuyến mãi có thể có cho một sản phẩm cụ thể.

Mastering Data Analytics tự hào là đơn vị đào tạo Kỹ năng Phân tích Dữ liệu Kinh doanh hàng đầu Việt Nam. Các Khóa học Phân tích Dữ liệu Kinh doanh được khai giảng định kì hàng tháng. Với hai hình thức học: Online và Offline tạo điều kiện cho học viên linh hoạt sắp xếp thời gian. Truy cập Khóa học Business Intelligence để biết lịch khai giảng gần nhất. Mọi thắc mắc về khóa học bạn có thể inbox Fanpage Mastering Data Analytics hoặc liên hệ 0961 48 66 48 để được giải đáp miễn phí!