oracle 查询树结构节点下的数量

                                      树状结构如下

广东省202913684830

--------越秀区202913684831

-------------麓景麓202913684833

-------------越秀路202913684837

--------天河区202913684832

-------------天河路202913684838

第一种方式

select a.treegroup_id,a.treegroup_parent,a.treegroup_name,

(select count(*)

from j_treedepot b

where b.treegroup_parent=a.treegroup_id) sub_cnt

from j_treedepot a

where a.treegroup_parent=202913684830

order by 1;

第二种方式

with parent as (

select a.treegroup_parent, count(*) sub_cnt

from j_treedepot a

group by a.treegroup_parent

order by 1

)

select a.treegroup_id, a.treegroup_name, nvl(b.sub_cnt,0) sub_cnt

from j_treedepot a

left join parent b on a.treegroup_id=b.treegroup_parent

where a.treegroup_parent=202913684830

order by 1

                                            表结构如下

时间: 2024-07-31 00:38:07

oracle 查询树结构节点下的数量的相关文章

oracle查询当前用户下所有的表,包括所有的字段

oracle查询当前用户下所有的表,包括所有的字段 背景: ? 前两天接到一个需求,做一个展示所有表名,表备注,表数据,表字段数,点击查看按钮查看字段名和注释,支持导出. 在Oracle中,可用使用视图USER_TABLES查看当前用户有哪些表,都有多少数据: table_name:表名,field_num:表字段数,comments:表注释,count_rows(table_name):统计表数据 SELECT * FROM USER_TABLES; USER_TAB_COLUMNS:表中的所

SQL查询父节点下的所有子节点(包括子节点下的子节点,无限子节点)

-->Title:Generating test data -->Author:wufeng4552 -->Date :2009-09-30 08:52:38 set nocount on if object_id('tb','U')is not null drop table tb go create table tb(ID int, ParentID int) insert into tb select 1,0 insert into tb select 2,1 insert int

Oracle查询当前用户下的所有表及sqlplus 设置 列宽

如果oracle服务器中装有多个数据库实例,则在用户名处输入:用户名/密码@数据库名称.如果数据库服务器不在本机上,还需要加上数据库服务器的地址:用户名/密码@IP地址/数据库名称. [[email protected] ~]$ sqlplus scott/[email protected]/prod SQL*Plus: Release 11.2.0.3.0 Production on Thu Apr 13 19:49:57 2017 Copyright (c) 1982, 2011, Orac

oracle查询某一个字段的数量总和

select count(*) from (select count(*) from 表名称 group by 多种数据量 ) 表名; 举个栗子: 比如说我有一个数据类型的字段, 里面有很多种的数据类型. 而且每个数据类型都有近些年的数据.  就是有很多重复的数据类型的数据. 我的目的就是查询出 数据类型的个数. 先查询出不重复的数据类型. select count(*) from 表名称 group by SJLX; 然后我们在用count(*) 查询这些条目数的总个数. select cou

20170411-oracle 查询指定节点下的所有子节点包括直到叶子节点

select * from emp e start with e.empno=7839connect by prior e.empno=e.mgr

oracle 查询当前用户下所有表结构信息

1 select t.table_name,cm.comments, c.COLUMN_NAME,ccm.comments 2 from user_tables t 3 left join user_tab_columns c on c.TABLE_NAME = t.table_name 4 left join user_tab_comments cm on cm.table_name=t.table_name 5 left join user_col_comments ccm on ccm.t

Oracle递归查询树结构

之前在工作中碰到一个问题,需要找树结构下的所有子节点,如果用程序写会反复查询数据库,对性能有影响,在网上找了下,可以用Oracle的递归查询,例子如下: create table test1 ( cid int, cpid int ) insert into test1 (cid,cpid) values(1,0); insert into test1 (cid,cpid) values(2,1); insert into test1 (cid,cpid) values(3,1); insert

IT忍者神龟之Oracle查询树形结构

Oracle中的select语句可以用START WITH...CONNECT BY PRIOR子句实现递归查询,connect by 是结构化查询中用到的, 其基本语法是: ------------------------------------------------------------------------------------- select * from 表名start with 查询条件1 connect by  查询条件2 where 查询条件3; ------------

oracle查询转换_inlist转换

oracle的optimizer会对一些sql语句进行查询转换,比如: 合并视图 子查询非嵌套化 inlist转换 下面讲讲遇到的in list转化优化的案例: create table test( col1 varchar2(12) col2 number ext varchar2(4000) ); create index test_ind on test(user_id, col2); create sequence seq_test cache 200; 第一步:准备一些测试数据(10个