w tsql zrobiłbyś co następuje, mam nadzieję, że poprowadzi cię to we właściwym kierunku
SELECT
p.id,
c.postcount
FROM posts as p
INNER JOIN (
SELECT
post_id,
count(*) AS postcount
FROM comments
GROUP BY post_id
) as c
on p.id = c.post_id
Order by c.postcount desc