Через AJAX файл не скачать. Недавно разбирался с этим.
1. На сервере, при получении AJAX-запроса можно подготовить файл и сформировать уникальную ссылку на него, которую отдать в ответе на полученный AJAX-запрос.
2. В браузере, получив ссылку на файл, открыть новое окно
select t.id, t.parent_id, t.name,
(select count(*) from table tmp where t.id = tmp.parent_id) child_count
from table t
where t.parent_id is null or t.parent_id = 0