Как использовать group by, order by и где условие в sql? - PullRequest
0 голосов
/ 05 марта 2019

В данной таблице содержится

employee_id, 
Month_Year, 
Salary, 
City

Напишите запрос, чтобы получить пятого по величине ежегодного оплачиваемого сотрудника из каждого города.

мой код:

select * from (select * from(select * from (select * from dummy order by sal desc) where rownum <= 5)  order by sal) where rownum <=1 ;

, но это даеттолько 5-е место в итоговой таблице.

где я должен использовать оператор group by?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 05 марта 2019

Следующий запрос работает для меня. (число (4), где условие - «N», где «N» - n-я самая высокая зарплата. В вашем случае вам нужна 5-я самая высокая зарплата, поэтому N-1 - 4)

найди самую высокую зарплату в sql

select salary,city 
FROM tablename n1
WHERE (4) = (
SELECT COUNT(DISTINCT(n2.Salary))
FROM tablename n2
WHERE n2.Salary > n1.Salary and n1.city=n2.city group by n2.city) 
0 голосов
/ 05 марта 2019

Вы можете попробовать ниже -

select *
from tablename as t1 
where 
  t1.salary = (select salary from tablename t2
             where 
             t2.city= t1.city ORDER by salary desc limit 1 offset 5)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...