select count(*)和count(列名)的区别说明
dbwatcher2019-07-15 04:37:43
博客文章除注明转载外,均为原创。转载请注明出处。

count(*)对行的所有数目进行计算,包含NULL值的行。
count(column)对特定的列的值具有的行数进行计算,不包含NULL值的行。
count(1)的结果和count(*)的结果是一样的。
小例子:
sys@orcl-192.168.0.21> select count(*) from v$session;
  COUNT(*)
----------
       298

sys@orcl-192.168.0.21> select count(username) from v$session;
COUNT(USERNAME)
---------------
            240

sys@orcl-192.168.0.21> select count(nvl(username,'blah')) from v$session; 
COUNT(NVL(USERNAME,'BLAH'))
---------------------------
                        298

sys@orcl-192.168.0.21> select count(1) from v$session;
  COUNT(1)
----------
       298

--The end
0
0
写文章
戳我,来吐槽~