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如下:

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容