炽翼铁冰's Blog

Trying to become a programmer
导出ORACLE数据库中某个表字段中数据
oracle在linux下的安装

Select Count (*)和Select Count(1)以及Select Count(column)的区别

炽翼铁冰 posted @ 2010年1月14日 17:35 in Database(转载) , 5277 阅读

 

一般情况下,两着返回结果是一样的

假如表沒有主键(Primary key), 那么count(1)比count(*)快

如果有主键的話,那主键作为count的条件时候count(主键)最快

如果你的表只有一个字段的话那count(*)就是最快的

count(*) 跟 count(1) 的结果一样,都包括对NULL的统计
count(column) 是不包括NULL的统计
 
其原理是对数字1进行统计,会将表中所有记录转化为1,然后再计数统计
相当于先select 1 from table 然后count

如果null参与聚集运算,则除count(*)之外其它聚集函数都忽略null."
这句话的意思说如果字段是有空值的话,你用SUM去计算,得到的结果有可能不准确.
看一个实例:
    表A
    ID    EE
      1      e
      2    null
    select  count(*) from A  --结果是2
    select  count(EE)  from A  ---结果是1
 

登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter