怎样删除·数据库中重复的记录,仅保留一条,多字段的

DELETE
FROM
result14
WHERE
(
[依据],[年月],[处、科室],[奖罚分],[具体奖罚内容]
IN (
SELECT
[依据],[年月],[处、科室],[奖罚分],[具体奖罚内容]
FROM
[QmDataBase].[dbo].[result14]
GROUP BY
[检查组名称],[依据],[年月],[处、科室],[奖罚分],[具体奖罚内容]

        HAVING  COUNT(*) > 1
    )
)

AND (
ROWID NOT IN (
SELECT
MIN (ROWID)
FROM
[QmDataBase].[dbo].[result14]
GROUP BY
[检查组名称],[依据],[年月],[处、科室],[奖罚分],[具体奖罚内容]

    HAVING  COUNT(*) > 1

)
)

这样就可以删除了:

delete from people
where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)
and rowid not in (select min(rowid) from people group by peopleId having count(peopleId )>1)

我给举了一个例子,你根据你自己的表格进行修改,我这删除的是两条重复数据中编号较大的那一条
;With cte as(
select name,old
from table
group by name,old
having COUNT(*)>1
),
cte2 as(
select max (a.ID) ID,a.name,a.old
from table a
right join cte c
on a.name=c.name and a.old=c.old
group by a.name,a.old
)
delete from table
where ID in (select ID from cte2)