ID
,Amount
、およびParent_ID
を含む1つのテーブルがあります。 (現実にはもう少し複雑ですが、これはこの例ではすべて重要な列です)。基本的に私がやりたいことは、Amount列をグループ化し、最も一般的な親(つまり親IDがNULLのもの)で合計することです。最も低い共通の親のIDでのMySQLグループ
ID Amount Parent_ID
1 100 NULL
2 150 1
3 50 1
4 75 3
5 25 4
6 125 NULL
7 50 6
8 50 7
9 100 8
期待される結果:
ID SUM
1 400
6 325
あなたが見ることができるように、それは彼らだけがトップレベルの項目ある意味、二つのレコード、親を持っていけないものをretuns。 Sumの列はすべての子のAmount
を再帰的に合計したものなので、ID
= 1は1,2,3,4と5の合計です。ID
= 6は6,7,8,9の合計です。
ネスト数は設定されていますか?あなたは5時に停止しますか、それとも永遠に続くことができますか? – xQbert
理論的には永遠に進むことができますが、解決策がない場合は永遠に私は1つしか取ることができないと思います。 – user380527
テスト用セットアップ環境:http://www.sqlfiddle.com/#!2/b7a79 – mellamokb