我想查询我的大型 MYSQL 用户数据库,以找到最常见的名字并对它们进行排名。我还希望能够显示当前用户的名字排名。我想出了一个解决方案,但似乎有点慢。我想知道是否有更快的方法来做到这一点。
这是我提出的查询。
SELECT rank,fname
FROM (SELECT @rownum:=@rownum+1 rank,fname
FROM (SELECT fname,count(*)
FROM userlist GROUP BY fname
ORDER BY count(*) DESC) AS R1
JOIN (SELECT @rownum:=0) AS I) AS R2
WHERE fname = 'Username'