Oracle单表的复杂查询

系统 1662 0

Oracle单表的复杂查询

 

select avg (sal), max (sal),deptno from emp group by deptno;

select avg (sal), max (sal),deptno from emp group by deptno having avg (sal)> 2000 order by deptno;

 

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

select * from emp where (sal> 500 or job= 'manager' ) and ename like 'J%' ;

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

select * from emp order by deptno asc , sal desc ;

select (sal+ nvl (comm, 0 ))* 12 as sum ,ename from emp order by sum ;

求最高工资和最低工资

select max (sal), min (sal) from emp ;

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

select ename,sal from emp where ( select max (sal) from emp )=sal;

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

select * from emp where sal>( select avg (sal) from emp);

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

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

select avg (sal), max (sal),deptno from emp group by deptno;

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

select avg (sal), max (sal), min (sal),deptno,job from emp group by deptno,job;

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

select avg (sal), max (sal),deptno from emp group by deptno having avg (sal)> 2000 order by deptno;

对数据分组的总结:
1
分组函数只能出现在选择列表、 having order 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;

 

Oracle单表的复杂查询


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论