如何分析以下部分的查询
SELECT *
FROM Employee Emp1
WHERE (N-1) = (
SELECT COUNT(DISTINCT(Emp2.Salary))
FROM Employee Emp2
WHERE Emp2.Salary > Emp1.Salary
)
请通过示例解释。
答案 0 :(得分:0)
这将为员工记录提供第n个最高薪水。 这是一个相关的子查询。内部查询在其WHERE子句中使用外部查询(在本例中为Emp1表)中的值。
假设有以下sal值:
100
300
500
200
并且您希望在外部查询中找到第二高sal然后300(薪水)内部查询将返回1作为Emp2.sal> Emp1.sal的计数,即500(N-1,2-1 = 1)