sqlserver中T-sql语句提供的排序函数
row_number() over(
rank() over(
dense_rank() over(
NTILE(number_expression) over(
--当记录值相同时并列第一,排列编号并不是总会是连续的,例如此处就不连续,每个分区排列的话将序号都将为1
select qty,rank() over(partition by qty order by qty) as number from sales
--当记录值相同时仍然按编号依次连续排列,如果有分区的话每个分区序号从1开始排列
select qty,row_number() over(partition by qty order by qty) as number from sales
-- 没有分区时,排列序号连续,但记录值相同时排列序号也相同,有分区时,每个分区排列的话将序号都将为1
select qty,dense_rank() over(partition by qty order by qty ) as number from sales
--当一个分区有4条记录,而只有3个存储桶时,此时第一个存储桶将存储2条记录,而另外存储桶各存储一个。如果记录数刚好被存储桶平分,如分区有4条记录,则每个存储桶将存储两条记录
--存储桶
nitile(number_expression)
number_expression 表示存储桶数量
select qty,ntile(3) over(partition by qty order by qty) as number from sales
了解更多关于数据库方面的知识,请访问上海数据库培训学校