У меня есть таблица сотрудников. У каждого сотрудника есть идентификатор сотрудника. У некоторых сотрудников есть поле супервайзера, которое ссылается на идентификатор другого сотрудника. В штате 10 сотрудников, двое из которых являются супервайзерами, каждый наблюдает за 4 людьми. Я пытаюсь получить список всех сотрудников и количество других сотрудников, которых они контролируют. Пока я могу только показать супервайзеров и номер, который они контролируют. Это мой запрос:
SELECT s.employee_name, COUNT(*)
FROM employee e
join employee s on e.supervisor_id= s.employee_id
group by s.
order by s.employee_name;
Я попытался изменить JOIN
на RIGHT JOIN
, и теперь он покажет мне всех 10 сотрудников с двумя руководителями, показанными как имеющие 4 человека, которых они контролируют, но он показывает, что все остальные, которым некому руководить, имеют 1 вместо 0. Я уверен, что это что-то просто мне не хватает.
Образец данных:
employee_name, employee_name, supervisor_id,
'10111', 'Sydnee K. Stevens' NULL
'10870', 'Colton C. Rocha', '10111'
'11425', 'Astra V. Sharp','10111'
'12973', 'Melanie X. Rojas','10111'
'14451', 'Bethany Roman','10111'
'14597', 'Lydia Edwards', NULL
'16153', 'Selma Q. Conley', '14597'
'17730', 'Kristen B. Malone', '14597'
'17762', 'Barrett B. Bauer', '14597'
'18628', 'Shana Z. Flowers','14597'
COUNT(*)
. ПопробуйтеCOUNT(e.supervisor_id)
- person Paul Spiegel   schedule 02.02.2017