【发布时间】:2014-01-11 19:47:59
【问题描述】:
请帮助我了解基于 rownum 的删除记录,即使 id 重复也不会发生,但如果是这样的话。
select rownum,a.* from a;
ROWNUM ID NAME
---------- ---------- ----------
1 1 leo_1
2 2 leo_2
3 3 leo_3
4 1 leo_1
5 2 leo_2
6 3 leo_3
查询已尝试,但删除了所有 6 行。
DELETE FROM a
WHERE rownum not in
(SELECT MIN(rownum)
FROM a
GROUP BY name);
但是这个查询给出了正确的结果:
SELECT MIN(rownum)
FROM a
GROUP BY name
ROWNUM
----------
1
2
3
预期结果:
ROWNUM ID NAME
---------- ---------- ----------
4 1 leo_1
5 2 leo_2
6 3 leo_3
【问题讨论】:
-
预期结果是哪个查询的结果?
-
感谢您的所有回答。