SobesLab логотип SobesLab

Ответ

Можно выполнить рекурсивный обход иерархии с подсчетом уровней. Например, с использованием рекурсивного CTE: начать с сотрудников верхнего уровня (без начальника) с depth=1, затем рекурсивно присоединять подчиненных, увеличивая depth на 1 на каждом шаге. В итоге каждая запись получит свой уровень вложенности. Далее достаточно взять максимальное значение depth из полученного набора – это и будет длина самой длинной цепочки подчинения. Таким образом, находясь на первом уровне, мы рекурсивно прошли вниз по всем веткам и нашли максимальную глубину.