CodeGym /Các khóa học /SQL SELF /Giới thiệu về các hàm phân tích

Giới thiệu về các hàm phân tích

SQL SELF
Mức độ , Bài học
Có sẵn

Bắt đầu bằng một ví dụ đời thường nhé. Giả sử bạn là chủ một quán cà phê. Mỗi ngày khách đến, đặt đồ uống, và bạn ghi lại các dữ liệu này. Sau một thời gian, bạn muốn biết: đồ uống nào được ưa chuộng nhất? Trung bình mỗi hóa đơn trong ba tháng gần đây là bao nhiêu? Ngày nào trong tuần mang lại doanh thu cao nhất?

Những câu hỏi này — là ví dụ về các bài toán phân tích. Phân tích ở đây giúp biến "đống dữ liệu" thành thông tin hữu ích. Làm việc với phân tích ngay trong database — không phải phép màu gì đâu, mà là một bộ công cụ giúp trả lời các câu hỏi kiểu này.

Phân tích thường giải quyết các bài toán như:

  • Phân tích các chỉ số chính (ví dụ: doanh thu, hóa đơn trung bình, số lượng đơn hàng).
  • Xây dựng báo cáo: bảng, biểu đồ, sơ đồ.
  • Theo dõi xu hướng: các chỉ số thay đổi như thế nào theo thời gian.
  • So sánh dữ liệu (ví dụ: giữa các khu vực khác nhau).

Điều này quan trọng để đưa ra quyết định kinh doanh hợp lý, tối ưu hóa quy trình hoặc thậm chí dự đoán kết quả trong tương lai.

Vai trò của PL/pgSQL trong phân tích

Bây giờ khi đã hiểu tại sao cần phân tích, câu hỏi đặt ra là: tại sao lại dùng PL/pgSQL cho việc này? Chẳng phải xuất dữ liệu ra Excel rồi tính toán cũng được sao? Đúng không?

PL/pgSQL cho phép bạn:

  • Tự động hóa việc tính toán. Sao phải làm đi làm lại thủ công khi có thể tự động hóa nhỉ?
  • Xử lý lượng dữ liệu lớn ngay phía server. Tạo báo cáo trên server giúp không phải truyền tải nhiều dữ liệu sang ứng dụng client.
  • Tạo các truy vấn mạnh mẽ với tải thấp nhất. Làm việc nhanh và hiệu quả với bảng lớn.

Ví dụ: bạn có thể tự động tạo báo cáo bán hàng hàng ngày và lưu vào bảng, khỏi phải làm thủ công nữa.

Lợi ích khi dùng thủ tục để tự động hóa phân tích

Quy trình phân tích thủ công:

  1. Lấy dữ liệu từ database.
  2. Xử lý nó trong một bảng tính nào đó.
  3. Lưu kết quả. Tự động hóa qua PL/pgSQL:
  4. Viết thủ tục một lần.
  5. Chạy theo lịch định sẵn.
  6. Ngồi hưởng thành quả.

Khác hẳn về độ tiện lợi đúng không? :)

Ví dụ về các bài toán giải quyết bằng hàm phân tích

Dưới đây là một số bài toán bạn có thể giải quyết bằng các hàm phân tích. Những ví dụ này sẽ giúp bạn hiểu rằng hàm phân tích — không phải cái gì trừu tượng, mà là công cụ cực kỳ hữu ích.

Tính toán các chỉ số chính

Các chỉ số chính — là những con số giúp đánh giá tình trạng kinh doanh. Ví dụ:

  • Hóa đơn trung bình: trung bình mỗi khách chi bao nhiêu cho một lần mua.
  • Tổng số đơn hàng trong một khoảng thời gian nhất định.
  • Doanh thu theo từng loại sản phẩm.

Ví dụ truy vấn SQL để tính hóa đơn trung bình:

SELECT 
    SUM(order_amount) / COUNT(*) AS average_order
FROM 
    orders
WHERE 
    order_date > CURRENT_DATE - INTERVAL '3 months';

Xây dựng chuỗi thời gian và xu hướng

Giả sử bạn muốn biết doanh số thay đổi thế nào theo từng ngày. Để làm vậy, bạn có thể gom dữ liệu theo ngày và xây dựng chuỗi thời gian.

SELECT
    order_date, 
    SUM(order_amount) AS daily_sales
FROM 
    orders
GROUP BY 
    order_date
ORDER BY 
    order_date;

So sánh dữ liệu theo giai đoạn

Bây giờ giả sử bạn muốn so sánh doanh thu tháng 10 và tháng 9:

SELECT 
    EXTRACT(MONTH FROM order_date) AS month, 
    SUM(order_amount) AS total_sales
FROM 
    orders
WHERE 
    order_date BETWEEN '2023-09-01' AND '2023-10-31'
GROUP BY 
    EXTRACT(MONTH FROM order_date);

Cách làm này giúp bạn rút ra kết luận: điều gì đã thay đổi giữa các tháng? Tại sao tháng 9 lại thành công hơn? Hay ngược lại?

Nó hoạt động thế nào ngoài đời thực?

Trong thực tế, phân tích được áp dụng trong các tình huống sau:

  1. Trong marketing: để hiểu kênh nào thu hút nhiều khách nhất.
  2. Trong tài chính: để tính toán doanh thu, lỗ lãi và dự báo.
  3. Trong phát triển phần mềm: để phân tích hiệu năng ứng dụng.
  4. Trong ngành game: để phân tích hành vi người dùng và xây dựng đề xuất cá nhân hóa.

Bây giờ bạn đã biết tại sao cần các hàm phân tích, ở các bài giảng tiếp theo tụi mình sẽ đi sâu vào các khía cạnh kỹ thuật như dùng window function và aggregate để xây dựng báo cáo. Còn bây giờ — thử nghĩ xem bạn muốn phân tích chỉ số nào, và nó sẽ giúp gì cho dự án của bạn nhé!

Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION