数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

Oracle单表的复杂查询


发布日期:2021年12月19日
 
Oracle单表的复杂查询

Oracle单表的复杂查询

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

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

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

select *from empwhere (sal>or job=manager)and enamelikeJ%;

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

select *from emporderby deptnoasc saldesc ;

select (sal+nvl(comm))*assumenamefrom emporderbysum;

求最高工资和最低工资

selectmax(sal)min(sal)from emp ;

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

select enamesalfrom 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)deptnojobfrom empgroupby deptnojob;

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

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

对数据分组的总结

分组函数只能出现在选择列表havingorder by子句中(不能出现在where中)

如果在select语句中同时包含有group by having order by那么它们的顺序是group by having order by

在选择列中如果有列表达式和分组函数那么这些列和表达式必须有一个出现在group by子句中否则就会出错

SELECT deptno AVG(sal) MAX(sal) FROM emp GROUP by deptno HAVING AVG(sal) < ;

上一篇:Oracle数据库导入导出方法的总结

下一篇:构建高性能Oracle运行系统的原则