Trước tiên, bạn cần toàn bộ tập hợp kết quả của mình được nhóm theo ID người dùng và sắp xếp ... sau đó áp dụng xếp hạng
select
@rownum := @rownum +1 as rank,
prequery.uid,
prequery.PostCount
from
( select @rownum := 0 ) sqlvars,
( SELECT uid, count(id) postCount
from posts
group by uid
order by count(id) desc ) prequery
Để tìm kiếm một người cụ thể và gặp sự cố khi thử mệnh đề "HAVING", tôi sẽ tóm tắt nó lại và sau đó áp dụng where ...
select WrappedQuery.*
from ( entire query from above ) WrappedQuery
where WrappedQuery.uid = SinglePerson