В PostgreSQL, как я могу получить количество дочерних элементов для любого родителя в таблице

Примере

Tag       ChildCnt
--------------
1          3 
1.1        0
1.2        1
1.2.1      0
2          2
2.1        0    
2.2        0  
-1
Parthasarathi 22 Май 2015 в 16:06
Не могли бы вы показать нам несколько операторов SQL, которые вы пытались написать для решения этой проблемы?
 – 
Ihor Romanchenko
22 Май 2015 в 16:24

1 ответ

Лучший ответ

Наверное, не самый быстрый:

select tag, 
       (select count(*) from some_table t2 where t2.tag like t1.tag||'%' and t2.tag <> t1.tag) as child_count
from some_table t1
order by tag;

SQLFiddle: http://sqlfiddle.com/#!15/b818d/1

0
a_horse_with_no_name 22 Май 2015 в 16:39