我有一个包含多个用户记录的表格,按日期排序。用户的统计数据保存在那里,并为每个事件创建一个新条目。MySQL - 根据表中的名称出现排名用户;从名称查找排名
我创建了取前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(),但我总是得到无效的语法,不完全确定我做错了什么,不幸的是。我一直在尝试随机的东西,我一直在网上找到,但似乎没有工作。
什么是最好的方式来找到用户的排名?只有一个查询,如果可能的话。
感谢, 努诺
看到这个答案,让你开始:http://stackoverflow.com/ a/3614741/1385896 –