我有一个包含多个用户记录的表,按日期排序。用户的统计数据保存在那里,并且为每个事件创建一个新条目。
我创建了一个查询,根据出现情况获取前 10 个用户:
SELECT * FROM (
SELECT name, COUNT( * ) AS occurrences
FROM users
GROUP BY name
ORDER BY occurrences DESC LIMIT 10
) AS rank;
它正确报告了所有前 10 名用户,以及每个用户出现的次数。
但是,我还希望能够搜索某个用户,它不仅会报告他出现的次数,还会报告他的总体排名。如果所有用户都按出现次数排序,则排名将是他在列表中的位置。
我一直在尝试使用 SELECT ROW_NUMBER() 但我总是得到无效的语法,不完全确定我做错了什么,不幸的是。我一直在尝试我在网上找到的随机东西,但似乎没有一个有效。
查找用户排名的最佳方法是什么?如果可能,仅使用一个查询。
谢谢,努诺