給与が列の1つである「従業員」テーブルがあるとします。MS SQLのテーブルから「N番目の最大」の値だけを取得する方法は?
テーブルから「最高第N最高給与」を取得したいとします。
これはどのように簡単に取得できますか?
給与が列の1つである「従業員」テーブルがあるとします。MS SQLのテーブルから「N番目の最大」の値だけを取得する方法は?
テーブルから「最高第N最高給与」を取得したいとします。
これはどのように簡単に取得できますか?
SELECT TOP 1 employee.name, employee.salary from (
SELECT TOP N employee.name, employee.salary
FROM employee
ORDER BY employee.salary DESC)
これは上からN番目を与えます。
SELECT TOP 1 Salary FROM
(SELECT TOP(N) Salary FROM Employee
ORDER BY Salary DESC) E
WITH (
SELECT e.*, ROW_NUMBER() OVER (ORDER BY employee.salary DESC) AS rn
FROM employee
) AS q
SELECT *
FROM q
WHERE rn = @n
私はROW_NUMBER()を使って派生テーブルを考えていましたが、これはほぼ同じです+1 –
SELECT TOP 1 * FROM Employees
ORDER BY Employees.Salary DESC
SELECT TOP 1 E.Salary
FROM (SELECT TOP(N) Salary
FROM Employee
ORDER BY Salary DESC) E
ORDER BY E.Salary
だけではトップN番目の値ではなく、すべてのトップN値!! – Dhana