delete from Person2
where Email in (select Email from Person2 group by Email having count(Email) > 1) and 
Id not in (select min(Id) from Person2 group by Email having count(Email) > 1); 这段话提示语法问题,但我找不出问题,请大神指点

解决方案 »

  1.   

    select min(Id) from Person2 group by Email having count(Email) > 1
    改为count(*)
      

  2.   

    DELETE FROM Person2
    WHERE Email IN (SELECT b.Email FROM (SELECT Email FROM Person2 GROUP BY Email HAVING COUNT(1) > 1) b) AND 
    Id NOT IN (SELECT a.id FROM (SELECT MIN(Id) id FROM Person2 GROUP BY Email HAVING COUNT(Email) > 1) a); 聚合函数得到的结果集不能当常量使用,需要在外面包一层,把查询到的结果集,当成固定字段才可以执行删除动作;