SQL 删除编号最小的重复行

标签 sql sql-server duplicates

我找不到适当的方法来删除 sql 表中编号最小的重复键。如果存在具有相同编号的重复行,我需要删除其中之一。

例如

Key     Number  Description

11111   5   Desc1
11111   4   Desc2
22222   2   Desc1
22222   2   Desc2
33333   3   Desc1
33333   5   Desc2

这里我需要删除第 4 行的第二行,它比第 5 行小,第三行或第四行和第五行之一,其中第 3 行比最后一行 5 小。

最佳答案

在 SQL-Server 中删除重复项的查询:

;with c as
(
    select *, row_number() over(partition by [Key] order by Number desc) as n
    from YouTable
)
delete from c
where n > 1

关于SQL 删除编号最小的重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15742536/

相关文章:

sql - 使用 T-SQL 从 XML 中提取子节点值

sql-server - 用于检索此分组数据的适当 SQL Server 方法?

php - IP冲突mysql

python - 读取 CSV 并根据两列(多列)中的值删除重复值

php - 无法使用 php 获取和显示数据

sql - 如何在 SQL 中将相关行的值添加到列中

MYSQL - 如何获得零值

sql - MS SQL 选择表

duplicates - Amazon SES 发送重复的电子邮件

mysql - 如何在 SQL 中创建前 5 列和后 5 列?