count(1)与count(*)比较:
如果你的数据表没有主键,那么count(1)比count(*)快
如果有主键的话,那主键(联合主键)作为count的条件也比count(*)要快
如果你的表只有一个字段的话那count(*)就是最快的啦
count(*) count(1) 两者比较。主要还是要count(1)所相对应的数据字段。
如果count(1)是聚索引,id,那肯定是count(1)快。但是差的很小的。
因为count(*),自动会优化指定到那一个字段。所以没必要去count(?),用count(*),sql会帮你完成优化的
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
SQL> select count(distinct *) from test;
select count(distinct *) from test
*
ERROR 位于第 1 行:
ORA-00936: 缺少表达式
SQL> spool off
分享到:
相关推荐
Oracle分析函数——函数列表 SUM :该函数计算组中表达式的累积和 MIN :在一个组中的数据窗口中查找表达式的最小值 MAX :在一个组中的数据窗口中查找表达式的最大值 AVG :用于计算一个组和数据窗口内表达式的...
SQLServer和Oracle的常用函数
Oracle 函数分类 :单行函数 分组函数 分析函数单行函数分为:日期函数 数字函数 字符函数 转换函数 其他函数分组函数分为:max(最大值) min(最小值) sum(求和) avg(平均) count(求个数) 分析函数分为:rank() 具有相同...
常用oracle函数SQL中的单记录函数 CONCAT连接两个字符串; LENGTH返回字符串的长度 SUBSTR(string,start,count)取子字符串,从start开始,取count个
Oracle分析函数基本概念和语法总结及Regexp_***(regexp_substr,regexp_instr, regexp_like, regexp_replace, regexp_count)用法
总结了开发中Oracle常用到的一些函数,希望对大家有所帮助。 1、单行函数:表的每行都会有一个结果(字符函数、数字函数、日期函数、转换函数) 单行函数可以嵌套。嵌套函数的执行顺序是由内到外。 2、多行函数:表...
SQL中的单记录函数 1.ASCII 返回与指定的字符对应的十进制数; SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual; A A ZERO SPACE --------- --------- --------- --------- ...
ORACLE函数大全 ________________________________________ 作者:[本站编辑] 来源:[CSDN] 浏览:[ ] SQL中的单记录函数 1.ASCII 返回与指定的字符对应的十进制数; SQL> select ascii('A') A,ascii('a') a,...
·3Oracle分析函数三——SUM,AVG,MIN,MAX,COUNT ·4Oracle分析函数四——函数RANK,DENSE_RANK,FIRST,LAST… ·5Oracle分析函数五——统计分析函数 ·6Oracle分析函数六——数据分布函数及报表函数 ·7Oracle分析...
聚合函数可以是:sum,count,avg,max,min,first_value,last_value,rank,dense_rank ,row_number, ratio_to_report Over不能单独使用,用来制定数据窗口大小 Partition by表示分类数据集合,在此集合上的运算 Order by...
聚合函数可被用于select,order by以及having子句中。其运算可以基于group by的结果,也可以直接对所有记录进行运算。当然,这种类型语句相信大家平常也用的比较多,概念性的就不多介绍了,有一点需要注意的是,除了...
聚合函数可被用于select,order by以及having子句中。其运算可以基于group by的结果,也可以直接对所有记录进行运算。当然,这种类型语句相信大家平常也用的比较多,概念性的就不多介绍了,有一点需要注意的是,除了...
oracle_11gR2_07 数据操作(select,insert,update,delete) 和 常用函数(count,max,min,avg,sum,decode,distinct)
count函数计算组中的行数。 2、语法 count函数语法如下所示: count( {* | [distinct | all]} expr ) 该语法可以分解为下面的形式: COUNT( * ) 计算组中所有的行(包括具有空值和重复的行); COUNT( expr ) 如果expr...
Oracle中通过RowID访问数据是最快的方式 对字段进行函数转换,或者前模糊查询都会导致无法应用索引而进行全表扫描 对Oracle共享池和缓冲区中的Sql必须要大小写都完全用上才能够匹配上 2.顺序问题 Oracle按照...
Oracle中的SUM条件查询 1、按照区域编码分组查询区域编码、IPTV_NBR不为空的数量、ACC_NBR不为空的数量、所有用户数量 SELECT AREA_CODE, SUM ( CASE WHEN IPTV_NBR IS NULL or IPTV_NBR = '' THEN 0 ELSE 1 END ),...
1. CASE WHEN 表达式有两种形式 代码如下:–简单Case函数 CASE sex ... CASE WHEN 在语句中不同位置的用法2.1 SELECT CASE WHEN 用法 代码如下:SELECT grade, COUNT (CASE WHEN sex = 1 THEN 1 /*sex 1为男生,2位
5.INSTR(C1,C2,I,J) 在一个字符串中搜索指定的字符,返回发现指定的字符的位置; 6.LENGTH 返回字符串的长度; 7.LOWER 返回字符串,并将所有的字符小写 ;8.UPPER 返回字符串,并将所有的字符大写 ;9.RPAD和LPAD(粘贴...
9.4.6 组函数中的DISTINCT 9.5 列表函数 9.6 使用MAX或MIN函数查找行 9.7 优先级和圆括号的应用 9.8 小结 第10章 日期:过去、现在及日期的差 10.1 日期算法 10.1.1 SYSDATE、CURRENTDA_DATE及SYSllMESTAMP 10.1.2 ...
9.4.6 组函数中的DISTINCT 9.5 列表函数 9.6 使用MAX或MIN函数查找行 9.7 优先级和圆括号的应用 9.8 小结 第10章 日期:过去、现在及日期的差 10.1 日期算法 10.1.1 SYSDATE、CURRENTDA_DATE及SYSllMESTAMP 10.1.2 ...