oracle实现输出表中id作为父级id的数量和id作为子级id的数量
时间: 2024-05-05 15:21:49 浏览: 67
oracle中的ID号实现自增长的方法
假设表名为`table_name`,包含两个字段`id`和`parent_id`,可以使用以下SQL语句实现输出id作为父级id的数量和id作为子级id的数量:
```
SELECT
t1.id,
COUNT(DISTINCT t2.id) AS parent_count,
COUNT(DISTINCT t3.id) AS child_count
FROM
table_name t1
LEFT JOIN
table_name t2 ON t1.id = t2.parent_id
LEFT JOIN
table_name t3 ON t1.parent_id = t3.id
GROUP BY
t1.id;
```
这里使用了两个`LEFT JOIN`语句,分别以`id`作为父级id和子级id进行连接,并使用`COUNT(DISTINCT)`函数统计数量。最后使用`GROUP BY`语句按`id`分组输出结果。
阅读全文