SQL Server: Hàm Xếp Hạng (Ranking) | V1Study
Có thể bạn quan tâm
Các hàm xếp hạng (Ranking) dùng để xếp hạng các giá trị của một cột nào đó của tập kết quả có được từ câu lệnh SELECT theo thứ tự tăng dần hoặc giảm dần các giá trị của cột này.
Các hàm xếp hạng bắt buộc phải đi kèm với mệnh đề ORDER BY.
Phạm vi áp dụng: SQL SERVER.
Sau đây là danh sách các hàm xếp hạng:
1. ROW_NUMBER():
Hàm ROW_NUMBER() dùng để xếp hạng tập kết quả một cách tuần tự theo thứ tự bắt đầu từ 1 mà không quan tâm đến các giá trị giống nhau.
Bạn có thể hình dung cách xếp hạng của hàm ROW_NUMBER() ở bảng sau:
| ROW_NUMBER() | Mark |
| 1 | 5 |
| 2 | 6 |
| 3 | 6 |
| 4 | 7 |
| 5 | 7 |
| 6 | 8 |
| 7 | 9 |
| 8 | 9 |
| 9 | 10 |
Cú pháp:
SELECT ROW_NUMBER() OVER(ORDER BY Tên_cột asc/desc) AS Bí_danh, Các_cột FROM Tên_bảng;
Ví dụ:
SELECT ROW_NUMBER() OVER(ORDER BY mark asc) AS [Xếp hạng điểm], mark FROM Marks;
2. DENSE_RANK():
Hàm DENSE_RANK() dùng để xếp hạng các giá trị của một cột theo quy tắc các giá trị giống nhau thuộc cùng một hạng, giá trị nằm sau các giá trị giống nhau sẽ có hạng lớn hơn 1 đơn vị so với hạng của các giá trị ngay trước nó.
Ví dụ, nếu hạng của các giá trị giống nhau là 5 thì giá trị nằm ngay sau các giá trị giống nhau này sẽ có hạng là: 5 + 1 = 6
Bạn có thể hình dung cách xếp hạng của hàm DENSE_RANK() ở bảng sau:
| DENSE_RANK() | Mark |
| 1 | 5 |
| 2 | 6 |
| 2 | 6 |
| 3 | 7 |
| 3 | 7 |
| 4 | 8 |
| 5 | 9 |
| 5 | 9 |
| 6 | 10 |
Cú pháp:
SELECT DENSE_RANK() OVER(ORDER BY Tên_cột asc/desc) AS Bí_danh, Các_cột FROM Tên_bảng;
Ví dụ:
SELECT DENSE_RANK() OVER(ORDER BY mark asc) AS [Xếp hạng điểm], mark FROM Marks;
3. RANK():
Hàm RANK() dùng để xếp hạng các giá trị của một cột theo quy tắc giống hàm DENSE_RANK(), nhưng khác ở một điểm đó là hạng của giá trị nằm ngay sau các giá trị giống nhau được tính bằng cách lấy hạng của các giá trị giống nhau đó cộng với số lượng các giá trị giống nhau.
Ví dụ, nếu có 2 giá trị giống nhau và hạng của các giá trị giống nhau này là 7 thì hạng của giá trị nằm ngay sau các giá trị giống nhau này sẽ là: 7 + 2 = 9
Bạn có thể hình dung cách xếp hạng của hàm RANK() ở bảng sau:
| RANK() | Mark |
| 1 | 5 |
| 2 | 6 |
| 2 | 6 |
| 4 | 7 |
| 4 | 7 |
| 6 | 8 |
| 7 | 9 |
| 7 | 9 |
| 9 | 10 |
Cú pháp:
SELECT RANK() OVER(ORDER BY Tên_cột asc/desc) AS Bí_danh, Các_cột FROM Tên_bảng;
Ví dụ:
SELECT RANK() OVER(ORDER BY mark asc) AS [Xếp hạng điểm], mark FROM Marks;
Từ khóa » Hàm Xếp Hạng Trong Access
-
Demo Code Xếp Hạng Trong Query Giống Như Hàm Rank Trong Excel
-
Các Hàm Access (theo Thể Loại) - Microsoft Support
-
Sắp Xếp Bản Ghi Theo Thứ Tự Tùy Chỉnh - Microsoft Support
-
Cách Xếp Loại Học Lực Trong Access
-
Xếp Hạng Theo điều Kiện Trong Excel - Phần 1
-
Hướng Dẫn Cách Xếp Hạng Trong Báo Cáo Bằng Pivot Table
-
Làm Thế Nào để Xếp Hạng Các Giá Trị Theo Nhóm Trong Excel?
-
CÁCH TÍNH ĐIỂM TRUNG BÌNH VÀ XẾP LOẠI TRONG EXCEL ...
-
Cách Xếp Hạng Trên Excel Bằng Hàm RANK
-
Xếp Hạng Trong SQL? - HelpEx
-
Tạo Các Truy Vấn Query Trong MS Access
-
Xếp Hạng Theo Nhiều điều Kiện Trong Excel
-
Bài 8: Truy Vấn Dữ Liệu - Tìm đáp án, Giải Bài Tập, để Học Tốt
-
Cách Xây Dựng Một Biểu Thức Trong Access - Tân Đức ITS