У меня есть таблица сотрудников. У каждого сотрудника есть идентификатор сотрудника. Некоторые сотрудники имеют поле супервизора, которое ссылается на идентификатор другого сотрудника. Есть 10 сотрудников, два из которых являются супервайзерами, каждый из которых контролирует 4 человека. Я пытаюсь получить список всех сотрудников и количество других сотрудников, которых они контролируют. До сих пор я могу только представить, что надзиратели и число, которое они контролируют, показывают. Это мой запрос:Список всех сотрудников и количество людей, которых они контролируют в mysql
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'
Примеры данных и ожидаемых результатов, пожалуйста. PS - «некоторые» имеют поле супервизора? – user3741598
Должно быть: «У некоторых сотрудников есть супервизор» –
«все остальные, которым нечего контролировать 1, а не 0» - это из-за 'COUNT (*)'. Попробуйте 'COUNT (e.supervisor_id)' –