Есть таблица my_table с иерархической структурой (родитель parent_col). У каждой записи есть признак my_bool (True/False).
Чтобы подсчитать количество всех детей для записи, к примеру, 47, у которых значение my_bool = False, я использую такой запрос:
SELECT COUNT(*) FROM my_table WHERE parent_col = 47 and my_bool IS FALSE
С этим всё понятно, запрос очень простой. Но каким образом сделать так, чтобы считало не только прямых детей, но и количество их потомков до тех пор, пока не наткнется на запись, где my_bool IS TRUE.
Т.е., запрос должен быть рекурсивным + с условием. Как это правильно сделать?