首先确定思路:

1、以emp_no分组,找到每组最小的id
2、删除不是最小id的数据
第1步代码如下:
select min(id) 
from titles_test
group by emp_no
第2步第一直觉应该是
delete from titles_test
where id not in (
    select min(id) 
    from titles_test
    group by emp_no) 
);

无法通过的原因

但这样无法通过测试,原因前面大佬有解释:

mysql不允许在子查询的同时删除原表数据

正确的方法

把从原始表中查询出来的id作为一个临时表(test),再把从临时表中取出来的id作为条件,在原始表里删数据。

具体代码如下:
delete from titles_test
where id not in (
    select * from ( 
        select min(id) 
        from titles_test
        group by emp_no) test
);