SQL42 删除emp_no重复的记录
本文最后更新于:2022年4月9日 中午

题目描述
删除emp_no重复的记录,只保留最小的id对应的记录。
1 |
|
删除后titles_test表为
id | emp_no | title | from_date | to_date |
---|---|---|---|---|
1 | 10001 | Senior Engineer | 1986-06-26 | 9999-01-01 |
2 | 10002 | Staff | 1996-08-03 | 9999-01-01 |
3 | 10003 | Senior Engineer | 1995-12-03 | 9999-01-01 |
4 | 10004 | Senior Engineer | 1995-12-03 | 9999-01-01 |
输入描述
无
输出描述
无
题解
1 |
|
备注:
先用 GROUP BY 和 MIN() 选出每个 emp_no 分组中最小的 id,然后用 DELETE FROM
… WHERE … NOT IN … 语句删除 “非每个分组最小id对应的所有记录”。在MySQL中,子查询的查询结果必须要指定别名。sqlite则没有要求。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!