SELECT count(DISTINCT p.id) FROM post p JOIN comment c on p.id = c.post_id вернёт вам количество уникальных id постов. То есть именно количество постов вне зависимости от того, сколько к каждому прилагается комментов.
SELECT count(*) FROM post p JOIN comment c on p.id = c.post_id вернёт вам не количество постов, а количество выбранных строк, то есть в данном случае количество комментов во всех постах.
Константин Т: запрос считает количество моделей Bill, а не количество возвращаемых строк. Возвращает сразу — это ожидаемо. Инстанциировать модели смысла нет.