SELECT *
FROM Employees Emp1
WHERE (n) = ( SELECT COUNT(DISTINCT(Emp2.Salary))
FROM Employees Emp2
WHERE Emp2.Salary >= Emp1.Salary )
最佳答案
我认为最重要的是子查询。它返回大于或等于当前Emp1.Salary
的不同工资的数量。返回的值等于员工的薪资级别。
假设您是薪水第三高的员工,10000。子查询将计算大于您的不同薪水的数量,即 2
加一 (2+1 =3
)。加一从员工(包括您自己)算起,工资等于 10000。这是因为 WHERE
子句中使用了 >=
。
话虽如此,整个查询根据员工的薪资等级选择员工是完全有道理的。
关于mysql - sql查询中where子句中n的用途是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25822908/