如何排序获取上月统计值最高的Top10玩家?
实现Top10玩家统计值排序的SQL方案
很简单,你只需要对玩家进行分组统计,再按统计结果降序排序,最后限制返回前10条即可。这里是调整后的SQL语句:
SELECT player, COUNT(*) AS statistic_count FROM test WHERE statistic=0 AND time > DATE_SUB(now(), INTERVAL 1 MONTH) GROUP BY player ORDER BY statistic_count DESC LIMIT 10;
我来拆解下关键部分的作用:
GROUP BY player:按玩家维度分组,这样COUNT(*)会单独计算每个玩家符合条件的记录数AS statistic_count:给统计结果起一个别名,方便后续排序和直观查看ORDER BY statistic_count DESC:按统计值从高到低排序,确保统计值最高的玩家排在最前面LIMIT 10:只返回排名前10的玩家
用你举的例子来说,执行这条语句后,结果会是这样的顺序:
| player | statistic_count |
|---|---|
| player2 | 78 |
| player1 | 40 |
| player3 | 21 |
完全符合你要的排序和展示统计值的需求。
内容的提问来源于stack exchange,提问作者Alex K.
相关产品推荐
相关产品推荐

