我有一个Oracle Tree层次结构,该结构基本上类似于称为MY_TABLE的下表
(LINK_ID, PARENT_LINK_ID, STEP_ID )
在MY_TABLE中包含以下示例数据:
LINK_ID PARENT_LINK_ID STEP_ID ----------------------------------------------- A NULL 0 B NULL 0 AA A 1 AB A 1 AAA AA 2 BB B 1 BBB BB 2 BBBA BBB 3 BBBB BBB 3
根据上面的示例数据,我需要生成一个报告,该报告基本上返回两个父链接ID(仅顶层)的所有子级的总行数,也就是说,我需要生成一个返回以下内容的SQL查询信息,即:
PARENT RESULT COUNT ---------------------------- A 3 B 4
因此,我需要汇总属于所有(父)链接ID的子级总数,其中LINK_ID的PARENT_LINK_ID为NULL
我认为是这样的:
select link, count(*)-1 as "RESULT COUNT" from ( select connect_by_root(link_id) link from my_table connect by nocycle parent_link_id = prior link_id start with parent_link_id is null) group by link order by 1 asc