sqlserver中T-sql语句提供的排序函数

机构:上海内威培训 时间:2016-01-22 点击:526

  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

  了解更多关于数据库方面的知识,请访问上海数据库培训学校

 

免费试听

免费体验课开班倒计时

11: 59: 59

稍后会有专业老师给您回电,请保持电话畅通

咨询电话:15893081958
陈老师 QQ:3429316823
返回顶部