какой запрос вернуть Имя и зарплата сотрудника, имеющего максимальную зарплату - PullRequest
2 голосов
/ 28 июля 2010
  1. что такое запрос на возврат ФИО и зарплата работника с максимальной зарплатой

Ответы [ 7 ]

15 голосов
/ 28 июля 2010
SELECT Name, Salary FROM Minions
WHERE Salary = (SELECT Max(Salary) FROM Minions)

Обратите внимание, что будет возвращено более одной строки, если несколько сотрудников имеют одинаковую максимальную зарплату

3 голосов
/ 28 июля 2010
select name, salary from (select * from salary_table order by salary desc limit 1)
1 голос
/ 31 августа 2016
SELECT FirstName, max(salary)
FROM Employees 
WHERE salary = (
                SELECT max(salary)
                FROM employees
               )
GROUP BY FirstName

работает в SQL SERVER 2012

0 голосов
/ 06 октября 2018

Эти типы запросов (сгруппированные операции) могут выполняться с подзапросом.Например, выберите * из emp, где sal = (max (sal) из emp)

0 голосов
/ 19 ноября 2013

Если вы используете базу данных Oracle и хотите иметь только одного «сотрудника», то:

SELECT MAX( name   ) KEEP ( DENSE_RANK LAST ORDER BY salary ASC ) AS name,
       MAX( salary ) KEEP ( DENSE_RANK LAST ORDER BY salary ASC ) AS salary
FROM   Minions;

SQLFIDDLE

(спасибо Нейлу N за его название таблицы)

  • SQL Server имеет аналогичную аналитическую функцию FIRST_VALUE (или LAST_VALUE).
  • PostgreSQL также поддерживает оконные функции, включая LAST_VALUE.
0 голосов
/ 28 июля 2010

пара фирменных решений

SELECT TOP 1 [WITH ties] Name, Salary
FROM employee
ORDER BY  Salary DESC


SELECT Name, Salary
FROM employee
ORDER BY  Salary DESC
LIMIT 1

и стандартное

WITH E AS
(
    SELECT Name, Salary, 
    ROW_NUMBER() OVER (ORDER BY Salary DESC) RN /*Or RANK() for ties*/
    FROM employee
)
SELECT Name, Salary FROM E WHERE RN=1
0 голосов
/ 28 июля 2010
Select e.name, e.salary from employee e where
  not exists (select salary from employee e1 where e.salary < e1.salary)

Это, конечно, вернет более одной записи, если есть несколько человек с максимальной зарплатой.

...