Oracle 中count 和count(*) 的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle 中count 和count(*) 的区别相关的知识,希望对你有一定的参考价值。

count详解:    

count(*)将返回表格中所有存在的行的总数包括值为null的行,然而count(列名)将返回表格中除去null以外的所有行的总数(有默认值的列也会被计入).  

distinct 列名,得到的结果将是除去值为null和重复数据后的结果  

举例演示如下:  

SQL> create table test  

2 (  

3 ename varchar2(10),  

4 sal number(4)  

5 );  

表已创建。  

SQL> insert into test values(‘fxe1‘,90);  

已创建 1 行。  

SQL> insert into test(ename) values(‘fxe2‘);  

已创建 1 行。  

SQL> insert into test(ename) values(‘fxe3‘);  

已创建 1 行。  

SQL> insert into test(ename) values(‘fxe4‘);  

已创建 1 行。  

SQL> insert into test values(‘fxe5‘,80);  

已创建 1 行。  

SQL> insert into test values(‘fxe6‘,80);  

已创建 1 行。  

SQL> select * from test;  

ENAME SAL  

---------- ----------  

fxe1 90  

fxe2  

fxe3  

fxe4  

fxe5 80  

fxe6 80  

SQL> select count(*) from test;  

COUNT(*)  

----------  

6  

SQL> select count(sal) from test;  

COUNT(SAL)  

----------  

3  

SQL> select count(distinct sal) from test;  

COUNT(DISTINCTSAL)  

------------------  

2  

SQL> select distinct sal from test;  

SAL  

----------  

80  

90  

 

 

以上是关于Oracle 中count 和count(*) 的区别的主要内容,如果未能解决你的问题,请参考以下文章

Oracle 中count 和count(*) 的区别

Oracle基础之count和count(*)的区别

ORACLE中count()统计函数的使用

如何在 Oracle SQL 中使用 MAX() 和 COUNT()?

Oracle里countcount(*)和count(主键)哪个更快

Oracle 上 SELECT * 和 SELECT COUNT(*) 之间的结果大小不同