查询语句中,共有三个部门:10,20,30,查询哪些雇员的工资高于所在部门的平均工资,请问三个命令的区别
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/08/27 05:56:22
查询语句中,共有三个部门:10,20,30,查询哪些雇员的工资高于所在部门的平均工资,请问三个命令的区别
正确语句如下:
SELECT deptno,ename,sal
FROM emp outer
WHERE sal>( SELECT avg(sal)
FROM emp inter
WHERE outer.deptno=inter.deptno)
ORDER BY deptno;
下面语句的为什么不对:
SELECT deptno,ename,sal
FROM emp outer
WHERE sal>( SELECT avg(sal)
FROM emp inter
WHERE inter.deptno=inter.deptno)
ORDER BY deptno;
SELECT deptno,ename,sal
FROM emp outer
WHERE sal>( SELECT avg(sal)
FROM emp inter
WHERE outer.deptno=outer.deptno)
ORDER BY deptno;
正确语句如下:
SELECT deptno,ename,sal
FROM emp outer
WHERE sal>( SELECT avg(sal)
FROM emp inter
WHERE outer.deptno=inter.deptno)
ORDER BY deptno;
下面语句的为什么不对:
SELECT deptno,ename,sal
FROM emp outer
WHERE sal>( SELECT avg(sal)
FROM emp inter
WHERE inter.deptno=inter.deptno)
ORDER BY deptno;
SELECT deptno,ename,sal
FROM emp outer
WHERE sal>( SELECT avg(sal)
FROM emp inter
WHERE outer.deptno=outer.deptno)
ORDER BY deptno;
SELECT deptno,ename,sal
FROM emp outer
WHERE sal>( SELECT avg(sal) --因为 inter.deptno=inter.deptno恒成立
FROM emp inter -- 所以实际求的是所有部门的平均工资
WHERE inter.deptno=inter.deptno)--同理outer.deptno=outer.deptno
ORDER BY deptno;
再问: 正确的语句 该怎么分析啊,即正确的语句表示什么意思,它和错误的语句的结果为什么不同啊
再答: --正确写法: SELECT deptno,ename,sal FROM emp outer WHERE sal>( SELECT avg(sal) FROM emp inter WHERE outer.deptno=inter.deptno) ORDER BY deptno; --outer 和 inter 都是同一个表。inter 是outer的子表, --其中子查询 SELECT avg(sal) FROM emp inter WHERE outer.deptno=inter.deptno --返回和outer相同部门的 工资平均值(如果outer.deptno=outer.deptno,返回整个公司所有员工的平均工资) --where 条件 WHERE sal>( SELECT avg(sal) FROM emp inter WHERE outer.deptno=inter.deptno) --表示筛选出大于本部门工资平均值的信息
再问: 终于知道答案了。原来这个正确语句对同一个表名取两个不同的别名是有原因的,且必须取两个不同的别名,其实这个知识点涉及SQL中的相关子查询,以前没留意。 其实这个正确语句等同于如下语句:好像你说的也是这个意思,仍然感谢啊
FROM emp outer
WHERE sal>( SELECT avg(sal) --因为 inter.deptno=inter.deptno恒成立
FROM emp inter -- 所以实际求的是所有部门的平均工资
WHERE inter.deptno=inter.deptno)--同理outer.deptno=outer.deptno
ORDER BY deptno;
再问: 正确的语句 该怎么分析啊,即正确的语句表示什么意思,它和错误的语句的结果为什么不同啊
再答: --正确写法: SELECT deptno,ename,sal FROM emp outer WHERE sal>( SELECT avg(sal) FROM emp inter WHERE outer.deptno=inter.deptno) ORDER BY deptno; --outer 和 inter 都是同一个表。inter 是outer的子表, --其中子查询 SELECT avg(sal) FROM emp inter WHERE outer.deptno=inter.deptno --返回和outer相同部门的 工资平均值(如果outer.deptno=outer.deptno,返回整个公司所有员工的平均工资) --where 条件 WHERE sal>( SELECT avg(sal) FROM emp inter WHERE outer.deptno=inter.deptno) --表示筛选出大于本部门工资平均值的信息
再问: 终于知道答案了。原来这个正确语句对同一个表名取两个不同的别名是有原因的,且必须取两个不同的别名,其实这个知识点涉及SQL中的相关子查询,以前没留意。 其实这个正确语句等同于如下语句:好像你说的也是这个意思,仍然感谢啊
查询语句中,共有三个部门:10,20,30,查询哪些雇员的工资高于所在部门的平均工资,请问三个命令的区别
列出各个部门中工资高于本部门的平均工资的员工数和部门号,并按部门号排序.用SQL语句详细介绍一下,谢
请问division ministry department这三个词作为“部门”的意思时的区别?
sql语句怎么查询三个数值字段的综合,比如英语yy,语文yw成绩.怎么查询它们的总和?
decode函数用法在emp表中,为所有人长工资,标准是:10部门长10%;20部门长15%;30部门长20%其他部门长
SQL 查询语句的问题
矿山企业科学发展观三个阶段的部门总结
将5名大学生毕业生分配到某公司所属的三个部门中去,要求每个部门至少分配一人,则不同的分配方案共有______种.
协调的是哪些部门?
三个表,多表数据库查询语句.
某机关有三个部门,A部门有公务员为84人,B部门有公务员56人,C部门有公务员为60人,如果每个部门按相同的比例裁减人员
查询我现在所在的位置?