PCB MS SQL 排序应用(row_number rank dense_rank NTILE PARTITION)

 一.排序前,准备数据

--表变量
declare @table table (生产型号 varchar(4),流程数 int)
insert into @table
select 'A',26 union all
select 'B',25 union all
select 'C',25 union all
select 'D',23 union all
select 'E',20

--查看一下
select * from @table

二.排序后:

  select 生产型号,流程数,
  row_number() over(order by 流程数 desc) as [row_number], --流程数 倒顺   顺序递增
  rank()       over(order by 流程数 desc) as [rank],       --流程数 倒顺   顺序递增  相同按上一个顺序号,按计数号递增
  dense_rank() over(order by 流程数 desc) as [dense_rank], --流程数 倒顺   顺序递增  相同按上一个顺序号,按高顺号递增
  NTILE(3) over(order by 流程数 desc) as [NTILE],          --流程数 倒顺   范围数据等分为3份范围,确认数据在哪一份
 ROW_NUMBER() OVER (PARTITION BY 流程数 ORDER BY 流程数)  as [PARTITION]  --以流程数分组,按流程数顺序排序
 from @table

猜你喜欢

转载自www.cnblogs.com/pcbren/p/9248576.html