oracle count函数

1.  count函数
1.1.  count查询结果
count(*)是以所有字段做count
count(1)是以查询结果第一个字段做count,两者的结果是一样的
这里的1应该不是位置变量,相当于给*的结果加一个值为1伪列,再count 1的数量
所以结果和count(*)是一样的,即count(rowid)
count(1),你可以理解成有个字段,这个字段就是固定值1,那么也是计算分组下重复的行数。
同理,count(2), count(3)或者count('x')等等都是一样的结果。
count(rowid)也是一样
1.2. count速度比较
如果你的数据表没有主键,那么count(1)比count(*)快   
如果有主键的话,那主键(联合主键)作为count的条件也比count(*)要快   
如果你的表只有一个字段的话那count(*)就是最快的啦   
select count(*), select count(0), select count(1) from table
在统计表的行数时候,经常用到 select count(*)
然而对于行数很多的大表,这样的查询速度将会很慢。因为这样的查询对表的每一行都会进行每个列的扫描。
You Asked
What is the difference between count(1) and count(*) in a sql query
eg.
select count(1) from emp;
   and
select count(*) from emp;
and we said...
nothing, they are the same, incur the same amount of work -- do the same thing, take the
same amount of resources.

http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:1156159920245

http://www.oracledba.co.uk/tips/count_speed.htm

比较快的办法是 select count(0), 这样每一行就只是扫描行头信息。
count(*)将返回表格中所有存在的行的总数包括值为null的行,然而count(列名)将返回表格中除去null以外的所有行的总数(有默认值的列也会被计入).  
distinct 列名,得到的结果将是除去值为null和重复数据后的结果  
Oracle数据库中的count函数用于统计指定列或表中的行数。它可以返回符合指定条件的记录数,也可以统计某个列的不重复值的数量。在查询中,可以使用count函数来获取结果集的行数,或者统计某个列中非空值的数量。 例如,可以使用以下语句来统计表中满足某个条件的记录数: SELECT COUNT(*) FROM table_name WHERE condition; 其中,table_name是要统计的表名,condition是过滤条件。如果不需要过滤条件,可以省略WHERE子句。count函数还可以结合其他函数和操作符一起使用,以便进行更复杂的统计操作。 例如,可以使用以下语句来统计某个列的非空值的数量: SELECT COUNT(column_name) FROM table_name; 其中,column_name是要统计的列名。如果某个列中包含null值,并且不希望将null值计入统计结果,可以使用nvl函数将null值替换为其他值,然后再进行统计。 总之,count函数Oracle数据库中被广泛用于统计行数和计算某个列的非空值数量。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [[Oracle数据库详解]](https://blog.csdn.net/qq_46824955/article/details/126957866)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [oracle数据库常用分析函数与聚合函数的用法](https://blog.csdn.net/weixin_39773447/article/details/113215713)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值