deptNo from emp group by deptNo having avg(salary)<2000因为where子句不能使用聚合函数,所以可以分组,然后用having来实现deptNo代表部门号,salary代表工资,看看和您表中的是否一致。不一致修改它们即可,下面也是。select avg(salary) from emp 查询平均工资select max(salary) from emp 查询最高工资...
select empno ,ename, (sal+nvl(comm,0))*12 全年年薪 from emp ; -- nvl2(e1,e2,e3):如果e1不为空,就返回e2,否则返回e3 select empno ,ename, sal+nvl2(comm,comm,0) 总收入 from emp ; -- 求20号部门的员工工资的总和 select SUM(sal) from emp where deptno=20 -- 求20号部门的员工工资的...
SELECT e.empno,e.ename,m.empno,m.ename,(m.sal+NVL(m.comm,0))*12incomeFROMemp e,emp mWHERE e.mgr=m.empno(+)ORDERBY incomeDESC; 4、列出受雇日期早于其直接上级的所有员工的编号、姓名、部门名称、部门位置、部门人数。 1、确定所需要的数据表: emp表:雇员的编号、姓名; emp表:求出领导的工作...
4.查询emp表中每个部门的平均工资高于2000的部门编号,部门人数,平均工资,最后根据平均工资降序排列 select deptno,count(*),avg(sal) a from emp group by deptno having a>2000 order by a desc; 5.查询emp表中工资在1000-3000之间的员工,每个部门编号,工资总和,平均工资,过滤掉平均工资低于2000的部门,按照平...
1、 列出至少有一个员工的所有部门编号、名称,并统计出这些部门的平均工资、最低工资、最高工资。 1、确定所需要的数据表: emp表:可以查询出员工的数量; dept表:部门名称; emp表:统计信息; 2、确定已知的关联字段: emp.deptno=dept.deptno; 第一步:找出至少有一个员工的部门编号 ...
SELECT ename, sal, 1000, 'String' FROM emp; 1. ---查找出30号部门的员工信息 SELECT * FROM emp WHERE deptno = 30; 1. 2. ---查询出工资高于2000的员工信息 SELECT * FROM emp WHERE sal >2000; 1. 2. ---查找职位是manager的员工信息 SELECT *...
1. 首先,为了获取各个部门工资第二高的员工信息,我们需要从`EMP`表中筛选出与部门工资最高的员工不同的记录。2. 我们可以通过一个子查询来实现这一点,该子查询首先找出每个部门工资最高的员工的`EMPNO`。3. 然后,我们将在外层查询中排除那些在外层查询中已经被选为各部门工资最高的员工的`EMPNO...
你好,这个比较的容易,有多重方式可以实现的,我通过嵌套语句实现,我给出一个语句吧。select top 3 薪水 from emp
select * from emp where 工资> (select avg(sal) from emp) and dept ='某部门';