employees表中的数据如下:
employee_id last_name department_id
110 王一 90
101 张一 90
200 刘一 20
201 李一 30
110 裴一 110
203 许一 110
205 胡一 380
100 王一 90
101 张一 90
200 刘一 20
201 李一 30
202 裴一 110
203 许一 110
205 胡一 380
207 马一 380
209 弓一 400
能不能不用建临时表删除表中重复的数据
谢谢!
employee_id last_name department_id
110 王一 90
101 张一 90
200 刘一 20
201 李一 30
110 裴一 110
203 许一 110
205 胡一 380
100 王一 90
101 张一 90
200 刘一 20
201 李一 30
202 裴一 110
203 许一 110
205 胡一 380
207 马一 380
209 弓一 400
能不能不用建临时表删除表中重复的数据
谢谢!
where rowid not in
(select rowid from (select employee_id,last_name,department_id,min(rowid) rowid
from employees
group by employee_id,last_name,department_id))
where rowid in (select rid
from (select rowid rid,
row_number() over(partition by employee_id , last_name,department_id order by rowid) rn
from employees)
where rn <> 1);
delete from employees a
where a.rowid not in
(select max(rowid) from employees group by last_name, department_id)
http://topic.csdn.net/u/20080626/00/43d0d10c-28f1-418d-a05b-663880da278a.html
不过还是谢谢你们了,向各位高手学习!