#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