1.delete语句里不能有group by!~2.你的这个条件会把很多不应该删除的数据删除的!~delete * from 表 where id in (select 表.id from 表,(select min(id) from 表 group by name having count(name)>1) aaa --最里面的子表:取所有重复数据的最小idwhere 表.idaaa.idhaving count(name)>1)--外面的子表:取所有重复数据的id(不包含最里面子表的最小id) 这样才能删除满足你面试题的条件 删除所有重复的数据,保留最小Id的如果是oracle或者sqlserve...