如何删除同一张表中多行相同的数据但要保留一条?
请问下该如何删除同一张表中有多行相同的数据,但是要保留一行的数据,如下表:
ID name cdefine1 cdefine2 cdefine3
1 aa 101 09-08 15:35
2 aa 101 09-09 15:37
3 bb 101 09-09 15:36
4 cc 204 09-12 14:35
5 cc 204 09-13 12:35
6 dd 255 09-05 15:55
7 ee 255 09-06 18:15
8 ee 211 09-14 11:24
现在我要删除表中字段name和cdefine1相同的数据,就是说只要字段name和cdefine1是一样的就删除,但是要保留一条,最终结果如下:
ID name cdefine1 cdefine2 cdefine3
1 aa 101 09-08 15:35
2 bb 101 09-09 15:36
3 cc 204 09-12 14:35
4 dd 255 09-05 15:55
5 ee 255 09-06 18:15
8 ee 211 09-14 11:24
请问该如何实现?先谢谢啦
------解决方案--------------------
SQL code
delete t
from tb t
where exists (select 1 from tb where name=t.name and cdefine1=t.cdefine1 and id>t.id)
------解决方案--------------------
SQL code
delete
t
from
tb t
where
exists (select 1 from tb where name=t.name and cdefine1=t.cdefine1 and id>t.id)