2014-09-27 38 views
-1

下面的查詢如何分析部分如何分析部分

SELECT * 
FROM Employee Emp1 
WHERE (N-1) = (
      SELECT COUNT(DISTINCT(Emp2.Salary)) 
      FROM Employee Emp2 
      WHERE Emp2.Salary > Emp1.Salary 
      ) 

請通過實例講解下面的查詢。

+0

這是什麼問題? – 2014-09-27 16:44:23

+0

聽起來像是我的工作秩序..請嘗試一下。最簡單的想法是時間 – Coffee 2014-09-27 16:46:28

+0

@戈登林諾夫:我對如何在條件下評估子問題感到困惑 – avisingh05 2014-09-27 16:57:12

回答

0

這將爲員工記錄提供第n位最高工資。 這是一個相關的子查詢。內部查詢使用WHERE子句中的外部查詢(本例中爲Emp1表)的值。

假設有下面SAL的值:

100 
300 
500 
200 

,你想找到第二高SAL那麼對於300(工資)在外部查詢內部查詢將返回1作爲計數Emp2.sal> EMP1 .sal即500(N-1,2-1 = 1)