Volgens mij moet je GROUP BY a.id, c.id -- groeperen op a.id betekent alleen dat je meestal meerdere c.id . hebt s per a.id , en je krijgt er gewoon een "willekeurig" van. Dit lijkt een kwestie van fundamentele correctheid. Als je dat eenmaal hebt opgelost, wordt een eerste SELECT COUNT(*) FROM etc etc zou je dan zeker het aantal rijen moeten geven dat de volgende vraag zal opleveren, zodat je je pager dienovereenkomstig kunt voorbereiden.