Możesz uprościć zapytanie i użyć NAJMNIEJ funkcja
SELECT USERid, LEAST(7, COUNT(*))
FROM table
GROUP BY USERid
z pytania w Twoim komentarzu
SELECT SUM(countByUser)
FROM
(SELECT LEAST(7, COUNT(*)) as countByUser
FROM table
GROUP BY USERid) c