Рекурсивная сумма в древовидной структуре

У меня есть дерево в одной таблице. Таблица представляет собой дерево категорий, которые могут быть вложены бесконечно. У каждой категории есть столбец ProductCount, в котором указано, сколько товаров находится непосредственно в категории (без суммирования дочерних категорий).

Id  | ParentId | Name      | ProductCount
------------------------------------
1   | -1       | Cars      | 0
2   | -1       | Bikes     | 1
3   | 1        | Ford      | 10
4   | 3        | Mustang   | 7
5   | 3        | Focus     | 4

Я хотел бы сделать SQL-запрос, который для каждой строки / категории дает мне количество продуктов, в том числе в дочерних категориях.

Выход для таблицы выше должен быть

Id  | ParentId | Name      | ProductCount | ProductCountIncludingChildren
--------------------------------------------------------------------------
1   | -1       | Cars      | 0            | 21
2   | -1       | Bikes     | 1            | 1
3   | 1        | Ford      | 10           | 21
4   | 3        | Mustang   | 7            | 7
5   | 3        | Focus     | 4            | 4

Я знаю, что, вероятно, должен использовать CTE, но не могу заставить его работать так, как должен.

Любая помощь приветствуется!

Ответы на вопрос(5)

Ваш ответ на вопрос