sql42题解 | #删除emp_no重复的记录,只保留最小的id对应的记录。#

删除emp_no重复的记录,只保留最小的id对应的记录。

http://www.nowcoder.com/practice/3d92551a6f6d4f1ebde272d20872cf05

注意事项:mysql不允许delete from where 语句中以边查询,一边删除。为此本题采用mysql删除重复项中的where子句如使用了欲删除的表,需使用别名
解题思路:“删除重复项,取其最小id”,找出最小id集合保留,反转获得非最小id组合将其删除。

最小id组合:

SELECT MIN(id) FROM titles_test GROUP BY emp_no;

反转获得非最小id集合将其删除

DELETE FROM titles_test 
WHERE id NOT IN (SELECT * FROM (SELECT MIN(id) 
                                FROM titles_test 
                                GROUP BY emp_no) t); 
全部评论

相关推荐

07-15 00:33
江苏大学 Java
代码飞升:哈哈哈哈评论区三个打广告的
简历中的项目经历要怎么写
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-21 13:38
8月实习会变多吗现在还没找到实习该怎么办...回复的hr好少
码农索隆:3-4月就要开始找,基本上6月份就发offer,7月初已经开始暑期实习了。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务