zoukankan      html  css  js  c++  java
  • Oracle单表的复杂查询

    Oracle单表的复杂查询

     

    select avg(sal),max(sal),deptnofrom empgroupby deptno;

    select avg(sal),max(sal),deptnofrom empgroupby deptnohavingavg(sal)>2000orderby deptno;

     

    查询工资高于500或者是岗位为MANAGER的雇员,同时还要满足他们的姓名首字母为大写的J

    select *from empwhere (sal>500or job='manager')and enamelike'J%';

    按照部门号升序而雇员的工资降序排列

    select *from emporderby deptnoasc , saldesc ;

    select (sal+nvl(comm,0))*12assum,enamefrom emporderbysum;

    求最高工资和最低工资

    selectmax(sal),min(sal)from emp ;

    查询最高工资员工的名字,工作岗位

    select ename,salfrom empwhere (selectmax(sal)from emp )=sal;

    显示工资高于平均工资的员工信息

    select *from empwhere sal>(selectavg(sal)from emp);

    group by having子句
    group by
    用于对查询的结果分组统计,
    having
    子句用于限制分组显示结果。

    如何显示每个部门的平均工资和最高工资

    selectavg(sal),max(sal),deptnofrom empgroupby deptno;

    显示每个部门的每种岗位的平均工资和最低工资?

    selectavg(sal),max(sal),min(sal),deptno,jobfrom empgroupby deptno,job;

    显示平均工资低于2000的部门号和它的平均工资?

    selectavg(sal),max(sal),deptnofrom empgroupby deptnohavingavg(sal)>2000orderby deptno;

    对数据分组的总结:
    1
    分组函数只能出现在选择列表、havingorder by子句中(不能出现在where)
    2
    如果在select语句中同时包含有group by, having, order by那么它们的顺序是group by, having, order by
    3
    在选择列中如果有列、表达式和分组函数,那么这些列和表达式必须有一个出现在group by子句中,否则就会出错。
       如SELECT deptno, AVG(sal), MAX(sal) FROM emp GROUP by deptno HAVING AVG(sal) < 2000;

  • 相关阅读:
    UVA12125 March of the Penguins (最大流+拆点)
    UVA 1317 Concert Hall Scheduling(最小费用最大流)
    UVA10249 The Grand Dinner(最大流)
    UVA1349 Optimal Bus Route Design(KM最佳完美匹配)
    UVA1212 Duopoly(最大流最小割)
    UVA1395 Slim Span(kruskal)
    UVA1045 The Great Wall Game(二分图最佳匹配)
    UVA12168 Cat vs. Dog( 二分图最大独立集)
    hdu3488Tour(KM最佳完美匹配)
    UVA1345 Jamie's Contact Groups(最大流+二分)
  • 原文地址:https://www.cnblogs.com/riskyer/p/3297243.html
Copyright © 2011-2022 走看看