Как получить все записи о сотрудниках на втором месте по зарплате

0

Я знаю, как получить вторую таблицу базы данных о зарплате, используя

SELECT MAX(Salary) From Employee WHERE Salary < ( SELECT Max(Salary) FROM Employee);

Но я хочу получить все записи сотрудников, чья заработная плата является второй по величине зарплатой в таблицах.

  • 1
    Вы можете быть более ясным? «Но я хочу, чтобы все таблицы сотрудников, чья зарплата была вторым по величине в таблице». Что означают «записи»? Колонны или строки? И почему так много сотрудников со второй по величине зарплатой?
  • 0
    @ki хочу скомпоновать и предположить, что максимальная зарплата 5000, а вторая по величине зарплата - 2000, а у четырех сотрудников - зарплата 2000. Я хочу, чтобы четыре сотрудника заняли второе место по зарплате.
Теги:
database
phpmyadmin

4 ответа

2
Лучший ответ
Select * from employee where salary=(
SELECT MAX(Salary) From Employee WHERE Salary < ( SELECT Max(Salary) FROM Employee));
0

Просто получите всех сотрудников, чья зарплата равна второй самой высокой зарплате, которую вы получили:

set @second_top_salary=(
SELECT MAX(salary) FROM Employee 
WHERE salary<( SELECT Max(salary) FROM employee)
);
SELECT * FROM employee WHERE salary=@second_top_salary;

DEMO

0

Использование LIMIT:

SELECT Salary FROM (SELECT Salary FROM Employee ORDER BY Salary DESC LIMIT 2) AS Emp ORDER BY Salary LIMIT 1
0

попробуй это. он должен работать.

выберите * from Employee where Salary in (SELECT MAX (Зарплата) От сотрудника WHERE Зарплата <(SELECT Max (Зарплата) от сотрудника));

Ещё вопросы

Сообщество Overcoder
Наверх
Меню