`

Oracle中count()函数

阅读更多
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
分享到:
评论
2 楼 anttu 2012-03-20  
anttu 写道
 

1 楼 anttu 2012-03-20  
 

相关推荐

    Oracle中的分析函数详解

    其中,Oracle的分析函数是其强大的特性之一,它允许用户在单个SQL查询中执行复杂的分析操作,而无需使用子查询或者自连接。这篇文档将深入探讨Oracle中的分析函数,帮助你更好地理解和利用这一功能。 一、什么是...

    oracle开窗函数学习技巧总结

    在Oracle数据库中,开窗函数是一种非常强大的功能,它能够帮助我们对数据进行更复杂的分析和处理。开窗函数允许我们在查询结果集的一个窗口内执行聚合操作,而无需对数据进行物理排序或分组。本文将重点介绍`OVER`...

    oracle函数大全 oracle函数大全

    除了上述函数,Oracle还提供其他很多函数,如TO_DATE用于将字符串转换为日期,TO_CHAR用于将日期转换为字符串,NVL用于处理NULL值,以及COUNT、SUM、AVG、MAX、MIN等聚合函数。了解并熟练使用这些函数,能极大地提高...

    oracle 10G函数大全(中文)

    Oracle 10G函数大全是Oracle数据库在10g版本中的一个重要参考资料,它包含了大量用于数据处理、查询优化以及数据库管理的内置函数。这个中文帮助文档是开发者和DBA们在进行Oracle数据库操作时的重要工具,它能提供...

    oracle 函数大全 参考函数 手册 速查 chm格式

    Oracle函数是数据库操作中的核心组成部分,它们允许开发人员和DBA执行各种计算、转换、查询和数据处理任务。手册中可能涵盖了以下几类函数: 1. 数学函数:如ABS(取绝对值)、MOD(取模)、ROUND(四舍五入)等,...

    Oracle分析函数

    Oracle 分析函数中有两种窗口函数:RANGE WINDOW 和 ROW WINDOW。 2.1 RANGE WINDOW RANGE WINDOW 函数用于指定一个值域窗口,例如 RANGE N PRECEDING,表示当前行及之前 N 行的所有数据。 2.2 ROW WINDOW ROW ...

    oracle 9i 分析函数参考手册.rar

    Oracle 9i 分析函数是数据库查询中一种强大的工具,它们允许在单个查询中对一组行进行聚合操作,同时保留原始行的细节。在Oracle数据库系统中,分析函数为数据分析师和数据库管理员提供了深入洞察数据的能力,尤其在...

    oracle系统内置函数大全

    2. COUNT函数:计算表中的行数。 3. MAX函数:返回列中的最大值。 4. MIN函数:返回列中的最小值。 5. STDDEV函数:返回列的标准差。 6. SUM函数:计算列中数值的总和。 7. VARIANCE函数:返回列中数值的方差。 ...

    oracle sql内置函数大全

    在Oracle数据库系统中,内置函数分为多种类型,包括数值函数、字符串函数、日期时间函数、转换函数、数学函数、聚合函数等。下面将详细介绍这些函数类别及其常见用法。 1. **数值函数**: - `ABS()`:返回一个数的...

    Oracle内建函数大全

    以上只是Oracle内建函数的一部分,实际中还有许多其他函数,如位运算函数、分析函数、游标函数等,它们极大地增强了SQL语言的功能,使得Oracle数据库能够处理各种复杂的数据操作。Oracle Built-in Functions.chm文件...

    Oracle_分析函数

    使用COUNT函数进行分区内的累计计数。 - 限制返回的行数: 结合窗口函数与WHERE子句来限制每个分区返回的行数。 4. 窗口子句的使用: - RANGE子句:根据偏移量定义窗口范围,通常用于数值和日期类型。如RANGE ...

    ORACLE常用分析函数说明

    下面是 Oracle 中一些常用的分析函数: 1. AVG 函数:用于计算一个组和数据窗口内表达式的平均值。例如,计算员工表中每个员工的平均薪水报告,该平均值由当前员工和与之具有相同经理的前一个和后一个三者的平均数...

    Oracle10G函数大全(chm格式的,比较全面)

    本文将深入探讨Oracle 10G中的一些关键函数,旨在帮助你更好地理解和利用这些工具。 1. **数学函数**: - `ABS()`: 返回一个数的绝对值。 - `MOD()`: 计算两个数相除的余数。 - `ROUND()`: 四舍五入到指定的小数...

    【Oracle】LISTAGG函数的使用.pdf

    Oracle LISTAGG 函数是 Oracle 11.2 中引入的一种新特性,主要功能类似于 wmsys.wm_concat 函数,即将数据分组后,把指定列的数据再通过指定符号合并。LISTAGG 函数有两个参数:要合并的列名和自定义连接符号。 ...

    oracle内部函数大全

    Oracle数据库提供了丰富的内置函数,这些函数被广泛应用于各种SQL查询和PL/SQL编程场景中,极大地提高了开发效率并简化了复杂逻辑的实现。根据Oracle官方文档和实际应用经验,我们将这些内置函数按照不同的功能类型...

    oracle最全函数大全

    通过本文的介绍,我们了解了 Oracle 数据库中不同类型的函数及其用途。分析函数特别适合处理复杂的数据分析任务,而聚合函数则是进行统计分析的基础。掌握这些函数能够帮助开发人员更加高效地管理和操作数据库中的...

    oracle 10G函数大全

    本资料“Oracle 10G函数大全”显然是一份全面的参考指南,涵盖了Oracle 10G中的主要函数,包括数学函数、字符串函数、日期时间函数、系统信息函数等。 1. **数学函数**: - ABS:返回一个数的绝对值。 - CEIL:...

    oracle 10g函数大全.

    在这个“Oracle 10g函数大全”中,我们将会探讨一些重要的Oracle 10g函数,这些函数涵盖了字符串处理、数值计算、日期时间操作、逻辑判断等多个方面。 1. **字符串函数**: - `SUBSTR(str, start, length)`: 用于...

    SQLServer和Oracle的常用函数

    - SQL Server中的`LEN()`用于获取字符串的长度,而Oracle则有`LENGTH()`函数实现相同功能。 - `SUBSTRING()`在两个系统中都能截取字符串的一部分,但SQL Server的索引从1开始,Oracle从1或0开始(取决于是否包含...

    Oracle高级操作函数学习笔记

    以下是从标题、描述和部分内容中提取的Oracle高级操作函数的知识点。 ### 分支判断函数 #### DECODE函数 DECODE函数是Oracle中的一个条件分支函数,它的功能类似于编程语言中的if-else if-else语句。DECODE函数的...

Global site tag (gtag.js) - Google Analytics