Sql 删除重复记录,保留id较低的记录

Sql 删除重复记录,保留id较低的记录,sql,Sql,我想删除整个表中ID最早的重复行 id | MEMBER_BADGE_ID | MEMBER_ID 3127| 859986 | 2320 3128| 859986 | 2320 2461| 860058 | 1915 2545| 860062 | 1921 2546| 860062 | 1921 2460| 860063 | 1164 2468| 860064 | 1

我想删除整个表中ID最早的重复行

id  | MEMBER_BADGE_ID | MEMBER_ID
3127| 859986          | 2320
3128| 859986          | 2320
2461| 860058          | 1915
2545| 860062          | 1921
2546| 860062          | 1921
2460| 860063          | 1164
2468| 860064          | 1919
2469| 860064          | 1919 
2472| 860067          | 1921
2476| 860076          | 1923
2547| 860077          | 1930
2489| 860086          | 1930
2474| 860089          | 1922
2475| 860089          | 1922
2477| 8600102         | 1924
这是:

select id,MEMBER_BADGE_ID,MEMBER_ID
from MEMBERS
order by MEMBER_BADGE_ID

想分享一下为什么它不起作用吗?我刚试过,效果很好。这是一个有效的答案@varunheta。结果将是(31288599862320)和(25468600621921)。如果在查询中使用GROUPBY,SELECT语句中的所有项都必须包含在聚合函数中,例如Sum()或Count(),否则它们还需要包含在GROUPBY子句中。。。您需要使用聚合函数,然后按任何非聚合列分组。@varunheta()不是聚合函数吗?您使用的是什么数据库系统?
    DELETE FROM MEMBERS 
    WHERE id IN (
    SELECT MIN(id) id
    FROM MEMBERS 
    group by MEMBER_BADGE_ID, MEMBER_ID 
    having count(*) >1)