Как выбрать запись которой соответствует наибольшее значение в другой таблице?

208
23 апреля 2022, 04:40

Пытаюсь реализовать запрос, в котором хочу вывести ФИО работника, который выполнил самое большое количество заказов (объектов).

Работаю с таким таблицами:

user (id_user,first_name,last_name ...), 
employee (id_employee,user_id,team_id), 
team(id_team,name),
team_object(id_team_object, id_team,id_object), 
object(id_object,address)

Каждый из работников, работает в команде, которая выполняет заказ (объект). Вот и не как не получается это реализовать таким образом, чтобы получилось вывести работника с самым большим количество выполненных работ (хочу использовать оператор ANY или ALL).

В моем примере проверяю, больше ли 10 сделал работник, а хочу, чтобы проверяло кто из них сделал самое большее заказов (это пока не получается реализовать).

select first_name,last_name from user1 s1
where user_id = any (
    select user_id from employee
    join team using(team_id)
    join team_object using (team_id)
    join object1 using (object_id)
    where s1.user_id = employee.user_id
    group by user_id
    having count(team_object_id) >10
Answer 1
with q as (
  select
  employee.user_id, count(team_object.id_team_object) as count
  from team_object
  join employee on employee.team_id = team_object.id_team
  group by employee.user_id
)
select first_name, last_name
from user
join q on q.user_id = user.id_user and q.count = (select max(count) from q)

dbfiddle

READ ALSO
Карусель карточек bootstrap

Карусель карточек bootstrap

Необходимо сделать вывод карточек в карусельЯ сделал вот такую вот

234
Spring Boot + DB транзакции

Spring Boot + DB транзакции

Недавно начал изучать Spring и возник такой вопросВ Spring Boot при выполнении длительного метода, как сделать, чтобы @Transactional метод блокировал (ставил...

161
SQL запрос на возражение с LEFT JOIN

SQL запрос на возражение с LEFT JOIN

Пытаюсь сделать запрос на возражение, с использованием LEFT JOINПравильно ли я понимаю, что такой запрос будет работать только, если данные в БД с одной...

141