黑马程序员技术交流社区

标题: 中兴SQL面试题 [打印本页]

作者: lovecx24    时间: 2013-12-5 13:22
标题: 中兴SQL面试题
职工号姓名年龄月工资部门号办公室电话
1张三252000110112345
2李四261500120154321
3王五23900210223456
问题:
查询每个部门中月工资最高的“职工号”的SQL查询语句如下:
select 职工号 from 职工 as 啊where 职工.工资  = select max(月工资) from 职工 as b where a.部门号= b.部门号
(1)请简要说明该查询语句对查询效率的影响
(2)对查询语句进行修改,使它既可以完成相同的功能,又可以提高查询效率


作者: cuilitang    时间: 2013-12-5 14:27
这个有点高端,看上去好像是内连接
作者: 吴琼cola    时间: 2013-12-6 09:21
1.这个语句对数据进行了两次遍历,遍历次数太多会增加数据库的负担。一张表的操作过于复杂。
2.可以对部门进行分组,然后查询各个部门工资最高的。如:select  max(月工资) from 职工 group by 部门号.




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2