SELECT *
FROM Employees Emp1
WHERE (n) = ( SELECT COUNT(DISTINCT(Emp2.Salary))
FROM Employees Emp2
WHERE Emp2.Salary >= Emp1.Salary )
答案 0 :(得分:1)
我认为最重要的是子查询。它返回大于或等于当前Emp1.Salary
的不同薪水的数量。返回的这个值等于员工的工资等级。
假设您是第三大薪水的员工,10000。子查询将计算的工资数量大于2
加上一个(2+1=3
)。另外一个从员工计算,包括你的自己,工资等于10000.这是因为>=
条款中使用了WHERE
。
话虽如此,整个查询根据他的薪资等级选择员工是完全合理的。