Oracle10g 分层查询和计算同级?

Oracle10g 分层查询和计算同级?,oracle10g,hierarchical,Oracle10g,Hierarchical,我在这个网站和其他网站上看到了几个不同的答案,但我没有太多的运气弄清楚如何在分层查询中计算兄弟姐妹 我正在使用Oracle 10g SELECT LEVEL, last_name||', '||first_name AS Manager, count(employee_id) FROM employees START WITH manager_id IS NULL CONNECT BY PRIOR employee_id = manager_id GROUP BY level 这将返回4个级别

我在这个网站和其他网站上看到了几个不同的答案,但我没有太多的运气弄清楚如何在分层查询中计算兄弟姐妹

我正在使用Oracle 10g

SELECT LEVEL, last_name||', '||first_name AS Manager, count(employee_id)
FROM employees
START WITH manager_id IS NULL
CONNECT BY PRIOR employee_id = manager_id
GROUP BY level
这将返回4个级别,约80名员工。我想把2级以下的兄弟姐妹数加起来,而不是全部列出。但是,我一直在努力想办法


有没有朝正确的方向轻推?谢谢

这将统计1级和2级员工的后代数量:

SELECT employee_id, manager_id, full_name, emp_level
    ,(
        SELECT COUNT(*)
        FROM employees
        START WITH employees.manager_id = employees2.employee_id
        CONNECT BY prior employee_id = manager_id
    ) descendents
FROM
(
    SELECT employee_id, manager_id, last_name||', '||first_name full_name, LEVEL emp_level
    FROM employees
    START WITH manager_id IS NULL
    CONNECT BY PRIOR employee_id = manager_id
) employees2
WHERE emp_level <= 2;

杰出的非常感谢你。看来我的逻辑在这个问题上是愚蠢的。我尝试计算它们,但我没有以计数作为查询的开头,而是按照您的建议进行内联视图。现在对我来说,创建一个临时表,以便能够从employees.manager\u id=employees2.employees\u id开始。再次感谢!!