当前位置:   article > 正文

Oracle的分组查询以及子查询

oracle 查询分组以外的内容

分组查询

关键字:group by 分组字段名,分组字段名……

  注意:使用了分组语句后,select语句后面必须出现多行函数或者分组字段名

        按多字段分组时,先按照第一个字段分,每个小组再按照第二个字段分,以此类推

     where子句中不允许出现多行函数

筛选关键字having

  作用:对分组后的数据进行筛选,可以使用多行函数

  注意:having关键字必须和分组函数一起使用,不能单独使用

sql子句执行顺序

  --from-->where--->group by-->select--->having--->order by

可见,筛选时,在where子句中筛选比在having子句中筛选执行效率高

查询所管理人数大于3个的领导的id

select manager_id,count(*)
from s_emp
group by manager_id
having count(*)>3

 

子查询

   当查询条件不明确时,可以考虑子查询

    查询工资比Chang工资高的人名

      select salary from s_emp where last_name='Chang';  得到chang的工资为800

      select last_name from s_emp where salary >800; 得到所要的人名

      把两条语句结合起来可以得到:

      select last_name from s_emp where salary >(select salary from s_emp where last_name='Chang')

      当子句中只有一条结果时可以使用比较符连接,否则要用in,not in ,any或all连接

关键字 :any :任意 from 表名     select 内容 from 表名 where 字段名 比较运算符 any 子查询语句

     in 任意,相当于= any  select 内容 from 表名 where 字段名 in 子查询语句  

     all所有    select 内容 from 表名 where 字段名 比较运算符 all 子查询语句

转载于:https://www.cnblogs.com/haoyujun135/p/11499096.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/268553
推荐阅读
相关标签
  

闽ICP备14008679号