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

时间:2023-03-09 02:50:30
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

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

二.排序后:

  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

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