下面oracle语句max(rowid)是什么意思?
/*删除重复数据*/deletefromemp_bak1whererowidnotin(selectmax(rowid)fromemp_bak1groupbyemp,en...
/*删除重复数据*/
delete from emp_bak1 where rowid not in (select max(rowid) from emp_bak1
group by emp,ename,salary); 展开
delete from emp_bak1 where rowid not in (select max(rowid) from emp_bak1
group by emp,ename,salary); 展开
3个回答
展开全部
按emp,ename,salary分组后的各组的rowid最大值
追问
如果查找最大值的话,应该是一条,怎么会有3条的?
追答
按emp,ename,salary分组后,每个组中都有一个最大值,有3个组,所以有3个最大值.
比如学生的数据库,如果按系分组的话,有5个系,就有五个最大值,
如果按系和班级分组,如果有5个系,每个系有3个班,就会有15个最大值.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
获取多条重复数据中rowid最大的那一条,这里是保留重复数据中id最大的,其他的删除
更多追问追答
追问
这个我知道,max(rowid)这是找最大值的,怎么会找到重复记录的?
追答
找到最大的之后删除除了最大之外的重复数据
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询