什么是sql查询中where子句中n的目的

时间:2014-09-13 11:48:34

标签: mysql sql

SELECT * 
FROM Employees Emp1 
WHERE (n) = ( SELECT COUNT(DISTINCT(Emp2.Salary)) 
              FROM Employees Emp2 
              WHERE Emp2.Salary >= Emp1.Salary )

1 个答案:

答案 0 :(得分:1)

我认为最重要的是子查询。它返回大于或等于当前Emp1.Salary的不同薪水的数量。返回的这个值等于员工的工资等级。

假设您是第三大薪水的员工,10000。子查询将计算的工资数量大于2加上一个(2+1=3)。另外一个从员工计算,包括你的自己,工资等于10000.这是因为>=条款中使用了WHERE

话虽如此,整个查询根据他的薪资等级选择员工是完全合理的。