私は階層クエリを初めて使用し、それに関するほとんどの投稿を確認しました。
改善したい質問があります。
私のシナリオは次のようなものです:
Sample
-------
ID,
NAME,
PARENT_ID
表データは次のとおりです。
ID NAME PARENT_ID
-----------------------
1 A (null)
2 B 1
3 C 2
4 D 1
結果を次のようにしたい:
ID NAME PARENT_ID IS_LEAF LEVEL DIRECT_CHILDREN_COUNT
-------------------------------------------------------------------
1 A (null) 0 1 2
2 B 1 0 2 1
3 C 2 1 3 0
4 D 1 1 2 0
DIRECT_CHILDREN_COUNT を除くすべての列を提供する次のクエリを作成しました
SELECT ID, NAME, PARENT_ID, CONNECT_BY_LEAF AS IS_LEAF, LEVEL FROM SAMPLE
START WITH PARENT_ID = null CONNECT BY PRIOR ID = PARENT_ID
ノードのすべての子 (直接の子だけでなく) の数を取得する方法に関する多くの投稿がありますが、それらは私には当てはまりません。
1.直接の子の数のみが必要です。2.可能であれば、 joins
を使用せずにこれを達成したいと考えています。
直接の子を各レコードの列値としてカウントする方法がわかりません。とにかく、階層クエリを使用して DIRECT_CHILDREN_COUNT を取得できますか?