oracle count(*),count(1)与count(rowid)区别

如题所述

COUNT(*)是按记录一行行来统计, COUNT(1)只统计行数,至于COUNT(ROWID)按物理号来统计追问

如果要剔除重复的记录,是不加distinct就行了?

追答

DISTINCT只是查询结果显示时去重, 而不是剔除.

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-07-14
其实都是一样的
count(*),会把星号翻译成字段的名字,计算分组下重复的行数。
count(1),你可以理解成有个字段,这个字段就是固定值1,那么也是计算分组下重复的行数。
同理,count(2), count(3)或者count('x')等等都是一样的结果。
count(rowid)也是一样

这三个结果都是一样的,最终的计算结果就是分组下符合条件的行数。本回答被提问者和网友采纳
第2个回答  2011-07-14
9i以后的版本这几个是一样的,你可以查看执行计划来确定是否有区别

oracle count(*),count(1)与count(rowid)区别
COUNT(*)是按记录一行行来统计, COUNT(1)只统计行数,至于COUNT(ROWID)按物理号来统计

Oracle 中count 和count 的区别
count(*),会把星号翻译成字段的名字,计算分组下重复的行数。count(1),你可以理解成有个字段,这个字段就是固定值1,那么也是计算分组下重复的行数。同理,count(2), count(3)或者count('x')等等都是一样的结果。count(rowid)也是一样 这三个结果都是一样的,最终的计算结果就是分组下符合条...

Oracle数据库重复数据删除的几种方法
count(*)> 1 将上面的>号改为=号就可以查询出没有重复的数据了。想要删除这些重复的数据,可以使用下面语句进行删除 delete from 表名 a where 字段1,字段2 in (select 字段1,字段2,count(*)from 表名 group by 字段1,字段2 having count(*)> 1)上面的语句非常简单,就是将查询到的数据删...

oracle数据库怎么删除重复数据只留一个?
1、查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断 ;select from 表 where Id in (select Id from 表 group byId having count(Id)> 1)2、删除表中多余的重复记录,重复记录是根据单个字段(Id)来判断,只留有rowid最小的记录;DELETE from 表 WHERE (id)IN (SELECT id FROM ...

...怎么快速计算有多少行,不要告诉我用count(*)之类的答案
那么可以使用 select count(sid) from tablename 来查询会比你用count(*) 要快的多。使用主键字段会用到主键索引,会比你去扫描整个表要快的多。oracle 里面统计某个表的数据行的数量只有使用count函数来求。如果数据量非常大你应该考虑把你的历史数据给清理掉或者使用分区表 。

oracle如何查重复数据并显示出来?
重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录\\x0d\\x0adelete from people\\x0d\\x0awhere peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)\\x0d\\x0aand rowid not in (select min(rowid) from people group by ...

oracle里面的count(*)的依据什么来计算
比如你建立了一个表,学生信息表吧...(stuInfo)然后你想知道你的表里有多少条记录,你怎么查呢?stuId --->是主键 select count(stuId) from stuInfo;这样就会返回你的表里的数据了,我不知道是不是应该这样回答,不过还是希望能帮到你了。。......

oracle如何删除重复数据oracle如何删除重复数据只保留一条
一、自关联查询方法Oracle系统中,对于所有的表都存在一个唯一的列,这就是rowid。对该列使用最大(max)或者最小(min)函数可以非常容易地确定重复的行。二、GROUPBY\/HAVING查询方法利用分组函数GROUPBY\/HAVING也很容易确定重复的行。以需要创建唯一索引的列分组并统计每组的个数,很明显如果组中记录数超过...

如何确定Oracle数据库表中重复的记录
一、自关联查询方法 Oracle系统中,对于所有的表都存在一个唯一的列,这就是rowid。对该列使用最大(max)或者最小(min)函数可以非常容易地确定重复的行。二、GROUPBY\/HAVING查询方法 利用分组函数GROUPBY\/HAVING也很容易确定重复的行。以需要创建唯一索引的列分组并统计每组的个数,很明显如果组中记录数...

如何解决Oracle数据库中重复数据的方法步骤
(select 字段1,字段2,count(*) from 表名 groupby 字段1,字段2 havingcount(*) 1)上面的语句非常简单,就是将查询到的数据删除掉。不过这种删除执行的效率非常低,对于大数据量来说,可能会将数据库卡死。基于上述情况,可以先将查询到的重复的数据插入到一个临时表中,然后对进行删除,这样,执行...

相似回答