select code, username, userid, count(*) as code_count, rank() over (ORDER BY code_count DESC) as code_rank where code_rank <= 5 group by code, username, userid