×

Tính phần trăm xếp hạng với PERCENT_RANK trong MySQL

Khi làm việc với dữ liệu, việc phân tích và xếp hạng các giá trị là một phần quan trọng trong việc tìm hiểu thông tin cần thiết. Trong MySQL, hàm PERCENT_RANK là một công cụ mạnh mẽ giúp bạn tính toán phần trăm xếp hạng của các giá trị trong tập dữ liệu.

1. PERCENT_RANK là gì?

PERCENT_RANK là một hàm phân tích (analytic function) trong SQL dùng để tính toán phần trăm xếp hạng của một giá trị trong một tập dữ liệu sắp xếp. Giá trị trả về nằm trong khoảng [0, 1], biểu thị tỷ lệ phần trăm của xếp hạng vị trí của một dòng so với toàn bộ tập dữ liệu.

2. Cú pháp của PERCENT_RANK

Cú pháp cơ bản của hàm PERCENT_RANK trong MySQL như sau:

PERCENT_RANK() OVER (
    [PARTITION BY partition_expression, ...]
    ORDER BY sort_expression [ASC | DESC], ...
)

3. Giải thích các thành phần trong cú pháp

  • PARTITION BY: Tùy chọn này sử dụng để phân chia tập dữ liệu thành các nhóm trước khi tính toán xếp hạng phần trăm. Nếu không sử dụng, hàm sẽ tính toán trên toàn bộ tập dữ liệu.
  • ORDER BY: Dùng để xác định thứ tự sắp xếp của các giá trị trong mỗi nhóm (hoặc toàn bộ tập dữ liệu nếu không có PARTITION BY).

4. Ví dụ cụ thể

Giả sử bạn có một bảng employees chứa các thông tin như sau:

CREATE TABLE employees (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(100),
    salary DECIMAL(10,2)
);

INSERT INTO employees (name, salary) VALUES 
('John Doe', 4000),
('Jane Smith', 4500),
('Emily Davis', 5000),
('Michael Brown', 4800),
('Linda Johnson', 4600);

Bạn muốn tính phần trăm xếp hạng của từng nhân viên dựa trên mức lương của họ. Bạn có thể sử dụng PERCENT_RANK như sau:

SELECT 
    name, 
    salary,
    PERCENT_RANK() OVER (ORDER BY salary DESC) AS percent_rank
FROM 
    employees;

5. Kết quả trả về

Kết quả của truy vấn trên sẽ như sau:

name salary percent_rank
Emily Davis 5000 0.0000
Michael Brown 4800 0.2500
Linda Johnson 4600 0.5000
Jane Smith 4500 0.7500
John Doe 4000 1.0000

Giá trị percent_rank cho biết vị trí phần trăm của từng nhân viên trong danh sách dựa trên mức lương của họ. Ví dụ, Emily Davis có mức lương cao nhất nên percent_rank của cô là 0.0000, trong khi John Doe có mức lương thấp nhất nên percent_rank của anh là 1.0000.

6.Ứng dụng thực tế

Hàm PERCENT_RANK có thể được sử dụng trong nhiều tình huống thực tế, chẳng hạn như:

  • Đánh giá hiệu suất nhân viên: Xếp hạng phần trăm dựa trên các chỉ số kinh doanh quan trọng.
  • Phân tích thị trường: Tính toán phần trăm xếp hạng của các sản phẩm dựa trên doanh số bán hàng.
  • Quản lý tài chính: Xếp hạng các khoản đầu tư hoặc tài sản dựa trên lợi nhuận hoặc rủi ro.

7. Kết luận

Sử dụng hàm PERCENT_RANK trong MySQL giúp bạn dễ dàng tính toán và hiểu được phần trăm xếp hạng của các giá trị trong tập dữ liệu. Việc hiểu rõ cách sử dụng hàm này sẽ giúp bạn có được những phân tích chính xác và sâu sắc hơn về dữ liệu mình đang làm việc.

Comments