【发布时间】:2015-03-23 10:14:16
【问题描述】:
我有三个具有以下架构的表:
Persons(Person_id, Department_id, Sure_name, Name, Birthyear, Height, Manager_id)
Departments (Department_id, Department_Name, Code)
Salaries (Salary_id, Person_id, Salary)
我需要运行一个查询,该查询将显示部门名称,其中工人的最小和最大高度之间的差异最大。
我是通过以下方式完成的:
select Department_Name
from Departments
where Department_id = (select Department_id
from Departments
join Persons
using (Department_id)
group by Department_id
having max(height) - min(height) = (select max(max(height) - min(height))
from Departments
join Persons
using (Department_id)
group by Department_id));
而且效果很好,只是我不确定解决方案是否最佳,这里有两个嵌套查询,我想知道我是否可以用更简单的方式实现。
【问题讨论】:
标签: sql oracle performance join