Orcale分组&分组筛选学习

--分组查询和筛选学习:
   --关键字:group by  分组字段,分组字段名
     --注意1:在使用了分组后,在select语句中只允许出现分组字段和多行函数
     --注意2:如果是多字段分组,则先按照第一字段分组,然后没给夏族继续按照第二字段继续分组,以此类推。
     --注意3:where中不能出现多行函数
   --分组筛选
     --关键字:having
          --作用:针对分组进行分组后的数据筛选,允许使用多行函数。
          --注意:having关键字必须的分组结合使用,不允许单独使用
          --where 和 having 的比较
            --where子句不允许出现多行函数,having允许出现多行函数
            --where子句和having都可以使用普通字段直接筛选,但是where的效率高于having
              --where执行顺序: from--》where--》group by--》select--》oeder by
              --having执行顺序:from--》group by--》select--》having--》oeder by
              --结论 在分组语句中,使用where进行字级别的筛选,使用having尽心多行函数的筛选。
--查询最高工资和员工数
select max(sal),count(* ) from emp;
--查询不同部门的最高工资
select * from emp order by deptno,sal;
select deptno,max(sal) from emp group by deptno;
--查询不同工作岗位的员工数;
  select job,count(*) from emp group by job;
--查询不同部门的不同工作岗位的人
  select deptno,job,count(*) from emp group by deptno,job order by deptno;
--查询不同部门的不同工作岗位的并且人数大于1的信息
select deptno,job,count(*) from emp group by deptno,job having count(*)>1 order by deptno;
--查询部门号大于10的不同部门的不同工作岗位的人数
select deptno,lower(job),count(*) from emp group by deptno,job having deptno>10 order by deptno;
select deptno,job,count(*) from emp where deptno>10 group by deptno,job order by deptno;

你可能感兴趣的:(Orcale分组&分组筛选学习)