给学生复习SQL语句的时候,有几个这样的题目:
1 找所有人的平均工资。
2 找每个每个部门的平均工资。
3 找工资最高的人。
4 找平均工资最高的部门。
个别同学做的比较快,就增加了道题:找出工资与任何其他人工资都不相同的人的信息。
学生给出的答案:
select * from employees e1
where salary not in
(
select salary from employees e2
where e1.employees_id !=e2.employees_id
)
另外一个参考答案:
Select * from employees
Where salary in
(
Select salary from
(
Select salary,count(salary) from employees
Group by salary
Having count(salary) = 1
)
)
后者看起来麻烦一些,但是在某些情况下(例如工资的种类不是很多的时候)性能也许能好一些。
本文提供了一组SQL练习题,包括求平均工资、查找最高工资等,并给出了两种解答方法:一种是比较直观的子查询方式;另一种则通过聚合函数和HAVING子句来筛选唯一工资。
989

被折叠的 条评论
为什么被折叠?



