×

Ranking Functions در SQL Server

فصل هفدهم :

Ranking Functions

گروهی از توابع در اس کیو ال سرور هستند که برای رتبه بندی یا Ranking مورد استفاده قرار میگیرند به این توابع Ranking Functions می گویند.
توابع رنکینگ مقداری را بعنوان رتبه(RANK) به هر رکورد موجود در نتایج اختصاص میدهند .

RANK ()

RANK ( ) OVER ( [ partition_by_clause ] order_by_clause )

select id,[FirstName],[LastName],[Age],rank() over(order by age desc) as 'rank' from Student

DENSE_RANK ()

DENSE_RANK ( ) OVER ( [ partition_by_clause ] order_by_clause )

select id,[FirstName],[LastName],[Age],dense_rank() over(order by age desc) as 'rank' from Student

NTILE ()

NTILE (integer_expression) OVER ( [ <partition_by_clause> ] < order_by_clause > )

select id,[FirstName],[LastName],[Age],Ntile(3) over(order by age desc) as 'rank' from Student

می خواهیم لیست دانش اموزان بر حسب کد انها مشاهده و در کنار لیست دانش اموزان شماره ردیفی را نیز نمایش دهیم.

ROW_NUMBER

این تابع یک سری اعداد متوالی را برطبق انچه در عبارت بعدی آن ذکر میشود باز میگرداند .
select firstname ,lastname, row_number() over(order by id asc) as Radif from student
در پرانتز جلو عبارت over مشخص میکنیم که چگونه رتبه بندی انجام شود . دراینجا رتبه بندی بر حسب id هر دانش آموز می باشد بصورتی که کوچکترین id رتبه اول را دارد.
برای رتبه بندی بصورتی که بالاترین id اول باشد
select firstname ,lastname, row_number() over(order by id desc) as Radif from student

PARTITION BY

پارتیشن کدن رکوردها ، تفکیک کردن ، بخش بخش کردن ، جزء بندی
فیلم را ببینید



مفاهیم و موضوعات این فصل عبارتند از :

  • Ranking Functions

  • RANK ()

  • DENSE_RANK ()

  • NTILE ()

  • ROW_NUMBER

  • PARTITION BY

vatantop
نظرات و سوالات درج سوال/ نظر