2015-05-08 4 views
-3

Как узнать третью самую высокую зарплату из таблицы с помощью SQL-запроса? пожалуйста, дайте мне только пример, показывающий запросКак найти третью самую высокую зарплату

+0

Покажите мне поля таблицы: выберите MAX (зарплата) у сотрудников; – Max

+0

Пожалуйста, добавьте структуру таблицы, данные примера, ожидаемый результат и запрос, за которым вы застряли. –

+0

Возможный дубликат [Как найти пятую самую высокую зарплату в одном запросе в SQL Server] (http://stackoverflow.com/questions/358542/how-to-find-fifth-highest-salary-in-a-single- query-in-sql-server) –

ответ

0

Вы можете использовать CTE с row_number, чтобы получить 3-ий самую высокую зарплату

WITH CTE AS 
(
    SELECT EmpID,EmpName,EmpSalar, 
      RN = ROW_NUMBER() OVER (ORDER BY EmpSalary DESC) 
    FROM dbo.Salary 
) 
SELECT EmpID,EmpName,EmpSalar 
FROM CTE 
WHERE RN = 3 
+0

Функция рейтинга 'ROW_NUMBER' - лучший вариант! –

+0

не общее решение, на мой взгляд. – Milen

+0

@MilenPavlov, что вы подразумеваете под словом «не общее решение»? –

1
select MIN(salary) from employes where salary in 
(select TOP 3 salary from employes order by salary desc) 
0

с использованием стандартных SQL, вы можете сделать:

select salary 
from (select distinct salary 
     from table t 
    ) t 
order by salary desc 
offset 2 
fetch next 1 row ; 
0
select Max(salary) 
from data t3 
where t3.salary < 
    (
     select Max(t1.salary) 
     from data t1 
     where t1.salary < (select 
          Max(t2.Salary) 
          from data t2) 
    ) 

Demo here

Смежные вопросы