此查询语句的SQL相关问题

时间:2019-12-14 15:20:16

标签: sql oracle count

我试图了解问题的根源,但我需要帮助...

  employee table's columns: employee_id, name, manager_id

既然员工可以成为其他经理,那么我该如何计算经理的下属呢?

我的想法

      employee table corresponding to the stated columns 

         A1 : Ant : C1

         B1 : Bird : D1

         C1 : Cat  : E1

         D1 : Dog  : C1

         E1 : Elephant :B1

那么查询或查询到的显示应该如何像以经理姓名作为第一列来计算经理的下属?

1 个答案:

答案 0 :(得分:0)

如果您只想计算每个经理的下属人数,请使用group by "manager_id"count(*)获取编号,然后加入表格以获取经理的姓名:

select e."name", m.counter
from (
  select "manager_id", count(*) counter 
  from employee
  group by "manager_id" 
) m inner join employee e
on e."employee_id" = m."manager_id"

请参见demo
结果:

> name     | COUNTER
> :------- | ------:
> Bird     |       1
> Cat      |       2
> Dog      |       1
> Elephant |       1