我有一个简单的分层表(类似于员工/经理),我希望通过父节点显示下属的计数。
考虑这个例子WITH RECURSIVE subordinates AS (
SELECT
employee_id,
manager_id,
full_name
FROM
employees
WHERE
employee_id = 2
UNION
SELECT
e.employee_id,
e.manager_id,
e.full_name
FROM
employees e
INNER JOIN subordinates s ON s.employee_id = e.manager_id
) SELECT
*
FROM
subordinates;
我需要做的是生成这样的输出:
id full_name subordinate_count
---- --------- -----------------
1 Alice 42
2 Bob 18
3 Charlie 4
假设Alice是CEO,Charlie是低级别经理。
看起来您必须在联合查询的前半部分对一个子句进行硬编码才能使层次结构查询起作用。我尝试了几种方法,但没有任何工作。提前感谢任何可以提供帮助的人。
答案 0 :(得分:0)
您可以尝试将此查询包装在外部查询中,并使用计数对full_name进行分组。
例如: select full_name,count(*) from("你的递归查询")outer_query group by outer_query.full_name;