统计函数 (分组函数)

常用的统计函数有以下五个:COUNT(),MIN(),AVG()、MAX().五个通用统计函数


  • COUNT() :统计个数,根据表中具体的数据量返回结果
  •   SUM()   :求和          针对数字进行统计
  • AVG()      :平均值      针对数字进行统计
  • MIN()      :最小值      各种类型数据都支持
  • MAX()      :最大值     各种类型数据都支持
  • 如下操作

SQL> SELECT COUNT(EmPNO )人数 ,min(sal) 最低工资,max(sal)最高工资, TRUNC (avg(sal))平均工资,sum(sal)每月总支出 FROM EMP;

      人数   最低工资   最高工资   平均工资 每月总支出
---------- ---------- ---------- ---------- ----------
        14        800       5000       2073      29025



以上的函数当表中没有数据的时候,只有COUNT()函数会返回结果,,其它表为空NULL;COUNT则返回0;



  • COUNT(*)  返回表中全部记录数
  • COUNT(字段)    统计不为空的数据量
  • COUNT(DISTINCT 字符) 消除重复数据之后的结果


SQL> SELECT COUNT(*) ,COUNT(EMPNO) , COUNT(DISTINCT JOB) FROM EMP ;

  COUNT(*) COUNT(EMPNO) COUNT(DISTINCTJOB)
---------- ------------ ------------------
        14           14                  5




SELECT [DISTINCT] *  分组列[别名] 

FROM 

WHERE

GROUP BY


SELECT deptno , COUNT(*),ROUND(AVG(sal),2)

           FROM EMP

            GROUP BY deptno;



SQL> SELECT deptno , COUNT(*),ROUND(AVG(sal),2)
  2             FROM EMP
  3              GROUP BY deptno;

    DEPTNO   COUNT(*) ROUND(AVG(SAL),2)
---------- ---------- -----------------
        30          6           1566.67
        20          5              2175
        10          3           2916.67

SQL>
GROUP BY 使用以下三种条件


   如果查询不使用GROUP BY 子句 ,那么 SELECT子句中只允许出现统计函数

错误代码:SELECT empno,COUNT(*) FROM emp;

正解代码:SELECT COUNT(*) FROM EMP ;


如果使用了GROUP BY 子句,那么SELECT子句中只允许出现分组字段,其它都不允许出现。

错误代码:SELECT ename ,job ,COUNT(*) FROM emp GROUP BY job

正解代码:SELECT job ,COUNT (*) FROM emp GROUP BY job ;

统计函数允许嵌套,,SELECT中只能出现嵌套函数


标签: COUNT DISTINCT
  • blogger

版权所有:oldboy ---- 《统计函数 (分组函数)
本文地址:http://www.bokeren.cc/post-115.html
除非注明,文章均为 《悠然生活的平淡博客-博客人linux运维之家》 原创转载请注明本文地址,谢谢。


相关推荐

你肿么看?

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。