oracle10g - 分层查询和计算 sibling ?

标签 oracle10g hierarchical

我在本网站和其他网站上查看了几个不同的答案,但我不太幸运地弄清楚如何计算分层查询中的 sibling 。

我正在使用 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 级以下的 sibling 的数量相加,而不是全部列出。但是,我在尝试解决问题时遇到了困难。

有没有正确的方法?谢谢!

最佳答案

这将计算每个员工在级别 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;

关于oracle10g - 分层查询和计算 sibling ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12575185/

相关文章:

Oracle 数据文件碎片整理

oracle - 迁移 6i 到 10g Oracle 报告

javascript - 如何在 IndexedDB 中表示层次结构?

python - XML 写入按元素分组的关系表

python - 如何在keras中连接两层?

java - 从 java 插入时出现 ORA-01858 Oracle 日期问题

sql - PL/SQL 新手 - 返回多个结果集问题

Oracle 嵌套表和列名

php - MySQL 中具有右左组的分层查询

python - Pandas 扁平化分层多索引