关于删除重复行的问题请问一下:drop form table t1
where t1.name>
(select min(rowid) from table t2
where t1.name=t2.name
group by t2.name
having count(t2.name)>1
)比如说,表结构
t1name ageaa 12
aa 14
nn 11
nn 10
针对上面的情况,为何只要比较rowid,就可以删除掉其他重复的行数据,sql语句删除重复行是怎么实现?
有没有可能如表中name=‘nn’的rowid也是大于min(rowid),而导致把nn的行数据也做删除,或者说每次比较min(rowid)是不是只在name相同的情况下进行?下面与上面有么有什么区别:
drop form table t1
where t1.name>
(select min(rowid) from table t2
where t1.name=t2.name)
group by t1.name
having count(t2.name)>1
where t1.name>
(select min(rowid) from table t2
where t1.name=t2.name
group by t2.name
having count(t2.name)>1
)比如说,表结构
t1name ageaa 12
aa 14
nn 11
nn 10
针对上面的情况,为何只要比较rowid,就可以删除掉其他重复的行数据,sql语句删除重复行是怎么实现?
有没有可能如表中name=‘nn’的rowid也是大于min(rowid),而导致把nn的行数据也做删除,或者说每次比较min(rowid)是不是只在name相同的情况下进行?下面与上面有么有什么区别:
drop form table t1
where t1.name>
(select min(rowid) from table t2
where t1.name=t2.name)
group by t1.name
having count(t2.name)>1
解决方案 »
- 大数据多表存储和表分区的问题,等待大牛出水。
- 数据库事务
- 数据库表修改了但是视图没有变化的问题
- 一个很难实现的脚本!
- 数据库转移
- 统计在单个表下userid的记录最多的SQL
- sql的几个函数用法
- 字段名称除了字母和数字以外还有什么字符是合法的?空格,括号,/,.-合法吗?字段名最长可以多长?数据表最多可以有多少个字段?
- 在艰难中得以毕业,同时为了感谢论坛上的朋友的帮助,散分,请朋友们接受我的好意吧--------
- oracle密码到期,会导致sqluld2无法导出数据么?
- 导出ORACLE数据时提示'SET_NO_OUTLINES'
- 关于释放表空间的疑问(alter table tabname deallocate unused),内有详细的分析,请各位大虾给点意见
rowid是oracle自己分配的,不会出现重复的数据,每个表中的每一行都有rowid