查找每个父母的子女总数

时间:2014-01-30 00:37:35

标签: mysql

我试图找出每个经理在一个组织中有多少报告,但却无法让它为我工作。

这是一个示例数据集 - 这都在一个表中,每一行都有一个管理器,除了第一个谁是树的顶部:

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

2 个答案:

答案 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