说明:返回结果集分区内行的序列号,每个分区的第一行从 1 开始。
语法:ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN)
简单的说row_number()从1开始,为每一条分组记录返回一个数字,这里的ROW_NUMBER() OVER (ORDER BY column1 DESC) 是先把column1
列降序,再为降序以后的每条column1 记录返回一个序号。
row_number() OVER (PARTITION BY COL1 ORDER BY COL2)
表示根据COL1分组,在分组内部根据 COL2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)
用 row_number() 删除重复记录
delete from a
from
(select ROW_NUMBER() over
(
partition by column1 --,重复列n 分组
order by column1 --,排序列
) [RowNumber]
,[column2]
,[column3]
,[column4]
from table1) a
where a.RowNumber > 1
from
(select ROW_NUMBER() over
(
partition by column1 --,重复列n 分组
order by column1 --,排序列
) [RowNumber]
,[column2]
,[column3]
,[column4]
from table1) a
where a.RowNumber > 1