我试图找出每个经理在一个组织中有多少报告,但却无法让它为我工作。
这是一个示例数据集 - 这都在一个表中,每一行都有一个管理器,除了第一个谁是树的顶部:
ID Manager
1 NULL
2 1
3 2
4 3
5 3
6 5
7 5
8 5
9 5
10 3
我需要将结果显示为:
Manager Count
1 1
2 1
3 3
5 4
这是我到目前为止所得到的,但它没有给我我需要的东西:
select e1.manager, count(e3.id) as emp_count
from employee as e2
left outer
join employee as e1
on e1.manager = e2.id
left outer
join employee as e3
on e3.manager = e1.id
group
by e1.manager
答案 0 :(得分:3)
为什么你有这么多外连接?
select e1.manager, count(e1.id) as emp_count
from employee as e1
where e1.manager is not null
group by e1.manager
根据您提供的数据,您的问题与“父母与子女”无关。这是一个非常简单的聚合。如果情况并非如此,请使用更好的样本数据更新您的问题。
答案 1 :(得分:0)
我认为这很简单:
select manager, count(manager)
from employee
where manager is not null
group by manager