Пытаюсь реализовать запрос, в котором хочу вывести ФИО работника, который выполнил самое большое количество заказов (объектов).
Работаю с таким таблицами:
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
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
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Недавно начал изучать Spring и возник такой вопросВ Spring Boot при выполнении длительного метода, как сделать, чтобы @Transactional метод блокировал (ставил...
Пытаюсь сделать запрос на возражение, с использованием LEFT JOINПравильно ли я понимаю, что такой запрос будет работать только, если данные в БД с одной...