Deepak.xip Ответов: 1

Sql-запрос, чтобы найти общее количество сотрудников, работающих под моим менеджером


Нужно передать идентификатор сотрудника и получить общее количество сотрудников, работающих под руководством менеджера, чей идентификатор сотрудника передается в SQL.

Выход должен быть таким : -

NoofEmployees EmplD

1234 10
2562 25

Где 10 & 25-фактически общее количество сотрудников, работающих под руководством менеджера EmplD 1234 и 2562 соответственно.

Что я уже пробовал:

Я попробовал CTE и Self Join, но мне нужно решение с лучшей производительностью.

1 Ответов

Рейтинг:
1

OriginalGriff

Итак, вы хотите, чтобы мы дали вам запрос для работы с данными, которые мы не видим и понятия не имеем, как они организованы?

Это может быть нелегко, но ... ..
Предполагая, что ваши данные похожи на это:

Employees: ID   Name   ManagerID
Тогда группа будет делать это:
SELECT ManagerID, COUNT(ID) FROM Employees GROUP BY ManagerID
Если это не так, нам нужно будет загрузить больше информации, прежде чем мы сможем начать отвечать.

"Стол-это что-то вроде этого :"

Используйте соединение с группой по:
SELECT e.ID, e.Name, m.MngCount FROM EMPLOYEE e
JOIN (SELECT ManagerID, COUNT(ID) as MngCount FROM Employees GROUP BY ManagerID) m 
ON e.ManagerID = m.ManagerID


Deepak.xip

Привет OriginalGriff,
Стол выглядит примерно так :
ИД наименование значению managerid
1234 xyz 526
2567 Азбука 552
5241 lmn 526
4141 ycg 526
7485 АЧС 552

Теперь мне нужно написать запрос (имея в виду минимальное время выполнения, так как таблица содержит около 70 лакх записей), чтобы вывод был таким :

ID Name EmployeeCount(количество сотрудников, работающих под руководством каждого менеджера сотрудников)
1234 xyz 3
2567 abc 2
5241 lmn 3
4141 ycg 3
7485 АЧС 2

OriginalGriff

Ответ обновлен