我必须找到 部门的最低工资高于部门的平均工资。
答案 0 :(得分:1)
由于您未提供表模式,因此我假设关系为emp(empid,deptid,salary)。然后你可以找到每个部门的最低工资,这个工资大于这个部门的平均工资:
select emp.deptid, min(emp.salary)
from (
select deptid, avg(salary) avg_sal
from emp group by deptid )
x join emp on x.deptid = emp.deptid
where emp.salary >= x.avg_sal
group by emp.deptid
如果您还希望获得您在问题中不需要的员工,那么您可以使用row_number()
,如下所示:
; with cte as (
select rn = row_number() over (partition by emp.deptid order by emp.salary asc), emp.*
from
(
select deptid, avg(salary) avg_sal
from emp
group by deptid
) x join emp on x.deptid = emp.deptid
where emp.salary >= x.avg_sal
)
select x.empid, x.deptid, x.salary
from cte
where rn = 1