Oracle中count()函数需要注意的地方
2008-11-14 17:01
549 查看
Oracle中count()函数需要注意的地方:
count(*)将返回表格中所有存在的行的总数包括值为null的行,然而count(列名)将返回表格中除去null以外的所有行的总数.
distinct+ 列名,得到的结果将是除去值为null后的结果,所以count(distinct+列名)得到的结果和count(列名)相同。
----------------------------------------------------------------------------------------------------------------
举例演示如下:
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> select * from test;
ENAME SAL
---------- ----------
fxe1 90
fxe2
fxe3
fxe4
fxe5 80
SQL> select count(*) from test;
COUNT(*)
----------
5
SQL> select count(sal) from test;
COUNT(SAL)
----------
2
SQL> select count(distinct sal) from test;
COUNT(DISTINCTSAL)
------------------
2
SQL> select distinct sal from test;
SAL
----------
80
90
SQL> select count(distinct *) from test;
select count(distinct *) from test
*
ERROR 位于第 1 行:
ORA-00936: 缺少表达式
SQL> spool off
count(*)将返回表格中所有存在的行的总数包括值为null的行,然而count(列名)将返回表格中除去null以外的所有行的总数.
distinct+ 列名,得到的结果将是除去值为null后的结果,所以count(distinct+列名)得到的结果和count(列名)相同。
----------------------------------------------------------------------------------------------------------------
举例演示如下:
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> select * from test;
ENAME SAL
---------- ----------
fxe1 90
fxe2
fxe3
fxe4
fxe5 80
SQL> select count(*) from test;
COUNT(*)
----------
5
SQL> select count(sal) from test;
COUNT(SAL)
----------
2
SQL> select count(distinct sal) from test;
COUNT(DISTINCTSAL)
------------------
2
SQL> select distinct sal from test;
SAL
----------
80
90
SQL> select count(distinct *) from test;
select count(distinct *) from test
*
ERROR 位于第 1 行:
ORA-00936: 缺少表达式
SQL> spool off
相关文章推荐
- Oracle 使用concat函数需要注意的地方
- Oracle分析函数model使用时需要注意的几个地方(二)
- Oracle分析函数model使用时需要注意的几个地方(一)
- stdlib.h中system函数一定需要注意的地方
- 给oracle建用户需要注意的地方
- C# 引用类型作为函数参数时一些需要注意的地方
- Oracle中一次执行多条SQL语句需要注意的地方
- 写正确函数需要注意的地方:输入两个整数n和m,从数列1,2,3,...n中随意取几个数,使其和为m,列出所有可能组合
- C语言(5) 函数使用需要注意的地方
- 写正确函数需要注意的地方:两个有序链表的合并
- 写正确函数需要注意的地方:最大堆的创建与堆排序
- insert函数需要注意的地方
- Oracle日期类型Date和timestamp需要注意的地方
- Oracle中count()函数 注意点
- oracle 默认值需要注意的一个地方
- 写正确函数需要注意的地方:strstr
- 关于rand()函数需要注意的地方
- php in_array 函数使用说明与in_array需要注意的地方说明
- Oracle技术之修改参数db_recovery_file_dest时需要注意的地方
- 写正确函数需要注意的地方:最长递减子序列