Как найти тройку самых высоких зарплат в таблице emp в оракуле? - PullRequest
4 голосов
/ 31 мая 2010

Как найти тройку самых высоких зарплат в таблице emp в оракуле?

Ответы [ 17 ]

13 голосов
/ 31 мая 2010

Вы можете попробовать.

   SELECT * FROM 
     (
      SELECT EMPLOYEE, LAST_NAME, SALARY,
      RANK() OVER (ORDER BY SALARY DESC) EMPRANK
      FROM emp
     )
    WHERE emprank <= 3;

Это даст правильный результат, даже если есть два сотрудника с одинаковой максимальной зарплатой

11 голосов
/ 31 мая 2010
SELECT  *FROM 
    (
    SELECT *FROM emp 
    ORDER BY Salary desc
    )
WHERE rownum <= 3
ORDER BY Salary ;
4 голосов
/ 28 октября 2012
SELECT a.ename, b.sal
    FROM emp a, emp b
    WHERE a.empno = b.empno
          AND
          3 > (SELECT count(*) FROM emp b
                   WHERE a.sal = b.sal);

Без использования TOP, ROWID, ранга и т. Д. Работает также с самым старым sql

4 голосов
/ 31 мая 2010

Что-то вроде следующего должно сделать это.

SELECT  Name, Salary
FROM 
    (
    SELECT  Name, Salary
    FROM         emp 
    ORDER BY Salary desc
    )
WHERE rownum <= 3
ORDER BY Salary ;
0 голосов
/ 05 февраля 2015

выберите top (3) min (имя), TotalSalary, ROW_NUMBER () OVER (заказ по TotalSalary desc) AS RowNumber ОТ группы tbl_EmployeeProfile по TotalSalary

0 голосов
/ 03 мая 2014

решение для поиска 5 лучших зарплат на сервере sq l

выберите верхнее (1) имя, зарплата из зарплаты, где зарплата в (выберите отличную верхнюю (3) зарплату из порядка зарплаты по дисконту зарплаты)

0 голосов
/ 01 ноября 2013
SELECT * FROM Employees
WHERE rownum <= 3
ORDER BY Salary ;
0 голосов
/ 16 сентября 2013
SELECT  Name, Salary
FROM 
    (
    SELECT  Name, Salary
    FROM         emp 
    ORDER BY Salary desc
    )
WHERE rownum <= 3
ORDER BY Salary ;
0 голосов
/ 16 июля 2013
SELECT DISTINCT(salary) FROM emp order by salary asc limit 0 ,3

Выше запроса дает три самые высокие зарплаты с DISTINCT .

0 голосов
/ 16 июля 2013
SELECT * FROM
     (
      SELECT  ename, sal,
      DENSE_RANK() OVER (ORDER BY SAL DESC) EMPRANK
      FROM emp 
     )
    emp1 WHERE emprank <=5
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...