опитайте това:
SELECT district, id, COUNT(b.district)
FROM adverts a INNER JOIN adverts b
ON a.district = b.district
WHERE b.id > a.id
GROUP BY district, id
HAVING COUNT(b.district) < 5
ORDER BY district, id DESC
по дефиниция, Joins
са по-бързи отколкото subqueries
.