2017-04-27 90 views
0

你好,我不知道该怎么做这里是SQL的初学者,我已经调整了如何显示所有薪水超过平均水平的人。工作人员的平均工资超过平均水平,但低于经理的平均水平? (SQL)

我现在需要显示所有工资都高于平均水平但低于主管的人。

下面是我输入的代码,以获得大于平均水平的工资。

select first_name, last_name, salary 
from staff 
where salary >(select avg(salary) from staff); 

这是第一款这样做,但我不知道该怎么calcalate Salarys因为如果:人们有工资要少那么一个主管,但比一般的多。

该表包含:

名字,姓氏,角色,工资

+1

你说'主管'...只有一个? –

+0

对不起,我忘了澄清这一点。是的,在这种情况下只有一个。 –

回答

1

只需添加第二个条件为WHERE条款:

select first_name, last_name, salary 
from staff 
where salary > (select avg(salary) from staff) and 
     salary < (select min(salary) from staff where role = 'supervisor') 

我解释的逻辑是,你要增加一个条件,工资低于任何主管。如果只有一个主管,上述查询应该仍然是正确的。

+0

非常感谢,这个结果非常完美,我会确保记住这个以备将来使用。 –