zoukankan      html  css  js  c++  java
  • Oracle子句【group by、having】

    【分组查询】
    关键字:group by 分组字段名,分组字段名...
     --注意1:分组后,在select语句中只允许出现分组字段和多行函数
     --注意2:如果是多字段分组,先按第一字段分组,然后每个小组继续按照第二个字段分组,以此类推。
     --注意3:在where子句中不允许出现多行函数(where子句比多行函数级别高)
    【分组筛选】
    关键字:having
     --作用:针对分组后数据进行筛选,允许使用多行函数。
     --注意1 :having必须和分组关键字结合使用,不允许单独使用。
    注意:where 和 having 比较:
     --1.where子句不允许出现多行函数,having允许出现多行函数。
     --2.where子句和having都可以使用普通字段直接进行筛选,但是where的效率高于having。
    where执行顺序: from-->where-->group by-->select-->order by
    having执行顺序:from-->group by-->select-->having-->order by
    小结:在分组语句中:使用where进行字段级别的筛选,使用having进行多行函数筛选。

    举栗子:

     1 --查询不同部门的最高工资
     2 select deptno,max(sal) from emp group by deptno;
     3 --查询不同工作岗位的员工数
     4 select job,count(*) from emp group by job;
     5 --查询不同部门的不同工作岗位的人数
     6 select deptno,job,count(*) from emp group by deptno,job order by deptno;
     7 --查询不同部门的不同工作岗位的并且人数大于1的信息
     8 select deptno,job,count(*) from emp group by deptno,job having count(*)>1 order by deptno;
     9 --查询部门号大于10的不同部门的不同工作岗位的人数
    10 select deptno,job,count(*) from emp group by deptno,job having deptno>10 order by deptno;
    11 select deptno,job,count(*) from emp where deptno>10 group by deptno,job order by deptno;--执行效率高

     

  • 相关阅读:
    Django笔记(2)Json字段处理
    jvm 启动参数设置(转载)
    消息中间件及WebSphere MQ入门(转载)
    Ubuntu下Tomcat绑定80端口(zz)
    idea+tomcat 端口占用
    内存溢出和内存泄漏的区别(ZZ)
    Ubuntu上搭建Hadoop环境(单机模式+伪分布模式) (转载)
    ubuntu 安装jdk7小结(转载)
    ubuntu下安装maven(转载)
    CXF wsdl2java (转载)
  • 原文地址:https://www.cnblogs.com/cao-yin/p/9740052.html
Copyright © 2011-2022 走看看