У меня есть таблица foo
со столбцами id
, number_of_foos
и parent_foo
. number_of_foos
является целым числом, а parent_foo
является ссылкой на id
другой строки. Каждая строка будет иметь целое число в parent_foo
или null
, если у нее нет родителя.
id | number_of_foos | parent_foo
---+----------------+-----------
1 | 10 | null
2 | 7 | null
3 | 6 | null
4 | 13 | 1
5 | 9 | 3
6 | 1 | 4
Учитывая число id
, я хочу найти общее количество «foo» в «цепочке foo», то есть количество foos для этого идентификатора и его родителя (и его родителя, и его родителя ..) .). Так, например, общее количество foos WHEN id = 6
равно 1 + 13 + 10 = 24.
Хорошо.
НО , я также хочу вычесть 1 для каждого родителя. Так что WHEN id = 6
на самом деле (1 + 13 + 10) - 2 = 22.
Возможно ли это?