Hàm ranking trong T-SQL

Bài trước chúng ta đã làm quen với một số functions mặc định được tạo ra trong T-SQL như Scalar, Logic functions,… Các hàm trên đều có đặc điểm chung là trả về một giá trị. GNV cũng giúp bạn hình dung được qua một số ví dụ minh họa về một số mệnh đề thường gặp.

Ở bài này GNV sẽ tiếp tục giới thiệu các bạn một số hàm cũng được tạo ra trong T- SQL, các hàm này trả lại nhiều hơn một giá trị và thường được dung để xếp hạng kết quả được trả lại theo một tiêu chí cụ thể nào đó. 

Ranking functions hay hàm ranking

Hàm Ranking cho phép bạn thực hiện một sô phép tính toán dựa trên một cột giá trị mặc định nào đó. hàm Ranking bao gồm một số hàm có chức năng xếp hạng như Ranking(), offset(), aggregate(), Distribution(). 

Ví dụ hàm ranking():

select a.first_name
            ,a.[Value]     
            ,Rank() OVER(ORDER BY [value] DESC ) as RANK_BY_PRICE
from dbo.NewCustomerList$ as a 

Truy vấn trên chúng ra xếp hạng kết quả trả lại theo thứ tự giảm dần của value, bắt đầu từ value cao nhất là 1.71875.

Trong tường hợp chúng ta muốn xếp hạng kết quả theo một cột khác thì có thể dùng câu lệnh sau, như mình muốn xếp hạng kết quả theo một nhóm giá trị cụ thể là theo tên.

Câu lệnh phía trên mình xếp hạng cột value theo nhóm first_name, khi bắt đầu first_name mới thì cột sẽ đánh số cho nhóm first_name mới lại từ đầu. Ngược lại trường hợp ở dưới mình chỉ xếp hạng theo cột value nên sẽ cho ra kết quả xếp hạng khác.

 

Nội dung