Как показать имя сотрудника и количество проектов, над которыми он работает, только для сотрудников, работающих над несколькими проектами?

#sql #count #project

#sql #количество #проект

Вопрос:

В настоящее время у меня есть запрос, который покажет имена сотрудников, которые работают над несколькими проектами, вместе с проектами, над которыми они работают в данный момент. Однако я не знаю, как изменить это, чтобы просто показывать каждого сотрудника один раз вместе с количеством проектов, над которыми они работают.

 select e.lname, w.pno
from employee e inner join works_on w on e.ssn = w.essn
where e.ssn in (select essn from works_on GROUP BY essn HAVING COUNT(essn) > 1);
 

Если вы могли бы дать краткое объяснение, почему / как это работает, пожалуйста, дайте мне знать!

Заранее большое вам спасибо за помощь!

Ответ №1:

Используйте агрегацию:

 select e.lname, count(*) cnt_projects
from employee e 
inner join works_on w on e.ssn = w.essn
group by e.ssn, e.lname
having count(*) > 1