Предполагая, что вы уже можете вернуть сообщение с его точками, вы можете попробовать что-то вроде этого:
в App \ Repository \ PostRepository:
public function postsByPoints() {
return $this->getEntityManager()->createQueryBuilder()
->select('p.post, count(pt.points) N)
->from('App:Points', 'pt')
->join('pt.post', 'p')
->where('some where clause') <- delete this if you're not selecting a subset
->groupBy('p.post')
->orderBy('N')
->getQuery()->getResult();
}
В некотором контроллере:
$em = $this->getDoctrine()->getManager();
$postsByPoints = $em->getRepository('App:Post')->postsByPoints();
Примечание: не проверено