https://www.youtube.com/watch?v=78DNY36XxQw&list=PLavw5C92dz9Hxz0YhttDniNgKejQlPoAn&index=13

-- Find out the no of employees managed by each manager.

drop table if exists employee_managers;
create table employee_managers
(
	id			int,
	name		varchar(20),
	manager 	int
);
insert into employee_managers values (1, 'Sundar', null);
insert into employee_managers values (2, 'Kent', 1);
insert into employee_managers values (3, 'Ruth', 1);
insert into employee_managers values (4, 'Alison', 1);
insert into employee_managers values (5, 'Clay', 2);
insert into employee_managers values (6, 'Ana', 2);
insert into employee_managers values (7, 'Philipp', 3);
insert into employee_managers values (8, 'Prabhakar', 4);
insert into employee_managers values (9, 'Hiroshi', 4);
insert into employee_managers values (10, 'Jeff', 4);
insert into employee_managers values (11, 'Thomas', 1);
insert into employee_managers values (12, 'John', 15);
insert into employee_managers values (13, 'Susan', 15);
insert into employee_managers values (14, 'Lorraine', 15);
insert into employee_managers values (15, 'Larry', 1);

select * from employee_managers;

Pasted image 20241118173749.png

SELECT mng.name AS Manager,COUNT(emp.name) AS NO_OF_EMPLOYEE
FROM employee_managers emp
JOIN employee_managers mng
ON emp.manager = mng.id
GROUP BY Manager
ORDER BY NO_OF_EMPLOYEE DESC;