zoukankan      html  css  js  c++  java
  • Oracle 中count(1) 、count(*) 和count(列名) 函数的区别

    1)count(1)与count(*)比较:

    1、如果你的数据表没有主键,那么count(1)比count(*)快
    2、如果有主键的话,那主键(联合主键)作为count的条件也比count(*)要快
    3、如果你的表只有一个字段的话那count(*)就是最快的啦
    4、count(*) count(1) 两者比较。主要还是要count(1)所相对应的数据字段。
    5、如果count(1)是聚索引,id,那肯定是count(1)快。但是差的很小的。  因为count(*),自动会优化指定到那一个字段。所以没必要去count(?),用count(*),sql会帮你完成优化的

    2)count详解:

    1、count(*)将返回表格中所有存在的行的总数包括值为null的行,然而count(列名)将返回表格中除去null以外的所有行的总数(有默认值的列也会被计入).
    2、distinct 列名,得到的结果将是除去值为null和重复数据后的结果

    3)举例演示如下:

     1  -- 创建test表
     2  SQL> create table test
     3  (
     4  ename varchar2(10),
     5  sal number(4)
     6  );
     7 
     8 -- 向test表中插入数据
     9 SQL> insert into test values('fxe1',90);
    10 SQL> insert into test(ename) values('fxe2');
    11 SQL> insert into test(ename) values('fxe3');
    12 SQL> insert into test(ename) values('fxe4');
    13 SQL> insert into test values('fxe5',80);
    14 SQL> insert into test values('fxe6',80);
    15 
    16 SQL> select * from test; -- 查询test表中的所有数据
    17 ENAME      SAL
    18 ---------- ----------
    19 fxe1        90
    20 fxe2
    21 fxe3
    22 fxe4
    23 fxe5        80
    24 fxe6        80
    25 ---------- ----------
    26 27 SQL> select count(*) from test; -- count(*):包含NULL,一共6条记录 28 COUNT(*) 29 ---------- 30 6 31 32 SQL> select count(1) from test; -- count(1):包含NULL,一共6条记录,和count(*)的结果一样 33 COUNT(1) 34 ---------- 35 6 36 37 SQL> select count(sal) from test; -- count(列名):不包含NULL,但包含重复值项,一共3条记录 38 COUNT(SAL) 39 ---------- 40 3 41 42 SQL> select count(distinct sal) from test; -- count(列名):不包含NULL,去重“count(distinct sal)”,一共2条记录 43 COUNT(DISTINCTSAL) 44 ------------------ 45 2 46 47 SQL> select distinct sal from test; 48 SAL 49 ---------- 50 80 51 90

    本文转载于:http://blog.csdn.net/szstephenzhou/article/details/8446481

  • 相关阅读:
    cmanformat
    mysql-sql语言参考
    jQuery 判断多个 input checkbox 中至少有一个勾选
    Java实现 蓝桥杯 算法提高 计算行列式
    Java实现 蓝桥杯 数独游戏
    Java实现 蓝桥杯 数独游戏
    Java实现 蓝桥杯 数独游戏
    Java实现 蓝桥杯 算法提高 成绩排序2
    Java实现 蓝桥杯 算法提高 成绩排序2
    Java实现 蓝桥杯 算法提高 成绩排序2
  • 原文地址:https://www.cnblogs.com/dshore123/p/7878310.html
Copyright © 2011-2022 走看看