У меня есть этот SQL:
SELECT count(*) as ct
FROM classifications cls
WHERE
cls.classification_id = :classification_id
START WITH cls.classification_id = :root_classification_id
CONNECT BY NOCYCLE PRIOR cls.classification_id = cls.parent_id
, и мне нужно перенести его в postgresql 10.
Я уже установил расширение таблицы и попробовал с connectby. вот моя попытка:
SELECT count(*) as ct
FROM classifications cls
WHERE
cls.classification_id = :classification_id
union
SELECT count(classification_id) FROM connectby('classifications','classification_id','parent_id',:root_classification_id,5)
as t(classification_id varchar, parent_id varchar,level int)
Проблема в том, что объединение является неправильным путем, потому что тогда вы получите 2 результата подсчета.