Ở các bài học lập trình trước, chúng ta đã tìm hiểu về định nghĩa của hàm ranking. Bài học hôm nay, chúng ta sẽ học cú pháp hàm DENSE_RANK.
Hàm DENSE_RANK cũng giống như hàm RANK, tuy vậy, hàm này không cung cấp khoảng cách giữa các số xếp loại. Thay vào đó, hàm này sẽ xếp loại liên tục cho từng giá trị ORDER BY cụ thể. Với hàm DENSE_RANK, kể cả khi có hai dòng có cùng giá trị xếp loại thì dòng tiếp theo vẫn chỉ tăng thêm một giá trị so với dòng trên. Hàm DENSE_RANK có cú pháp như hàm RANK.
Đây là hàm DENSE_RANK được tôi sử dụng để xếp loại cho toàn bộ các bản ghi trong bảng Person theo trường Age
SELECT DENSE_RANK() OVER (ORDER BY Age) AS [Dense Rank by Age], FirstName, Age FROM Person
Đoạn mã học lập trình trên sẽ xuất ra như sau:
Dense Rank by Age FirstName Age-------------------- ---------- -----------1 Larry 52 Doris 62 George 63 Mary 113 Sherry 114 Sam 175 Ted 235 Marty 236 Sue 297 Frank 388 John 40
Như bạn thấy các số trong cột “Dense Rank By Age” vẫn đảm bảo tính liên tục, không hề bị ngắt quãng kể cả khi có hai dòng cùng giá trị ORDER BY và giá trị xếp loại như Ted và Marty.
Như vậy, với bài học lập trình này, các bạn đã biết cú pháp hàm DENSE_RANK rồi. Chúc các bạn thành công.
Bạn đã biết các chương trình học lập trình tại Aptech chưa? Đăng ký thông tin tại http://www.cncaptech.edu.vn/