У меня есть таблица с именем Employee со следующими полями:
Employee
Я хочу получить двух лучших сотрудников с максимальной зарплатой. Как мне написать этот запрос?
SQL Server 2000 +:
SELECT TOP 2 e.* FROM EMPLOYEE e ORDER BY e.salary DESC
MySQL и Postgres:
SELECT e.* FROM EMPLOYEE e ORDER BY e.salary DESC LIMIT 2
Oracle:
SELECT x.* FROM (SELECT e.*, ROWNUM as rn FROM EMPLOYEE e ORDER BY e.salary DESC) x WHERE x.rn <= 2
Попробуйте это ..
SELECT * from Employee order by Salary desc limit 2 ;
Еще одно решение:
With NumberedItems As ( Select EmpId, Salary, Name , Row_Number() Over ( Order By Salary Desc ) As SalaryRank From Employee ) Select EmpId, Salary, Name From NumberedItems Where SalaryRank <= 2
Вы должны написать что-то вроде этого.
ВЫБРАТЬ ТОП-2 EmpID, Зарплата, Имя ОТ РАБОТНИКА ПО ЗАРАБОТКЕ Зарплата
ВЫБРАТЬ ТОП-2 * ОТ РАБОТЫ сотрудника по зарплате DESC;