@RoboCat

Mysql: как выбрать топ5 из групп?

Есть таблица:
id,name,otdel,money
-----------------
1,alex,it,1000
2,anna,callcenter,2000
3,anton,it,3000

итд.
Нужно выбрать из каждого отдела топ5 сотрудников с наибольшей зарплатой.
Для одной группы я могу составить запрос select * from users group by otdel ordeer by money asc limit 3 или как-то так..

Напишите плз запрос с пояснением, а то в интернете я встречал решения таких задач, но осмыслить это не получилось..
  • Вопрос задан
  • 174 просмотра
Пригласить эксперта
Ответы на вопрос 3
romy4
@romy4
Exception handler
Ну так у вас есть готовый запрос
Ответ написан
@RoboCat Автор вопроса
мне надо одним запросом из всех отделов выбрать топ5 сотрудников с наибольшей зарплатой.
Ответ написан
@res2001
Developer, ex-admin
Как-то так, видимо:
select u.* from users as u
where u.id in (select top 5 id from users as u1 where u1.otdel=u.otdel order by u1.money desc)
order by u.otdel, u.money desc
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы