select count(1), a from test  错误?
select count(*), a from test   正确?
count(1)是个什么东西,为什么有COUNT(*)  还要count(1)呢

解决方案 »

  1.   

    因为如果数据中有null值的话count不计数,
    count(1)就是为了避免null,计算包括null值的数
    理论上说count(*)和count(1) 是一个效果,不应该有问题啊
      

  2.   

    SQL> select count(*) from t;  COUNT(*)
    ----------
             4SQL> select count(1) from t;  COUNT(1)
    ----------
             4SQL> select count(a) from t;  COUNT(A)
    ----------
             3SQL> select * from t;         A          B
    ---------- ----------
             1          2
             1          2
             2          2
    SQL>
      

  3.   

    SQL> select count(1),a from t group by a;  COUNT(1)          A
    ---------- ----------
             2          1
             1
             1          2SQL> select count(*),a from t group by a;  COUNT(*)          A
    ---------- ----------
             2          1
             1
             1          2可能和你的数据有关吧
      

  4.   

    呵呵,楼上几位兄弟真敬业啊。count的问题,据说count(1) 比count(*) 查询效率高,不过没验证过。
      

  5.   

    LZ用上面的count(1)会报错吗???我觉的应该没问题啊
      

  6.   

    这二个sql后面都应该加个group by a吧!要不然二个sql都会有问题才对
      

  7.   

    select count(*) from emp;为什么默认是统计人数,不是统计工资或其它的呢