SQL删除重复数据记录

问题背景:

删除一张表中记录重复的数据,保证数据不重复(通过两个字段查询到的数据是不重复的)。

个人解决思路:

  首先通过SQL以group by分组的方式,查询出不需要删除的数据(引用delete时需要一张临时表),再通过delete加not in进行操作

表结构如下:

手写SQL过程:

通过上表可知,需要删除的数据是id=1或id=4的记录中的一条数据

我先通过group by 分组查询出不需要删除的数据,select id from t_temp group by course_id,score (面试官说这样只取出id会报错,通过实操是可以执行的),然后通过delete from t_temp where id not in (select id from ( select id from t_temp group by course_id,score ) t)就可以删除重复的数据。

注意:

需要注意的一点是需要一张临时表T,操作可能会慢,但是能解决问题。

最终SQL如下:

你可能感兴趣的:(SQL删除重复数据记录)