排序另一个查询的最高值

Sorting highest value of another query

要获取玩家上个月的统计值,我使用此查询:

SELECT COUNT(*) FROM test WHERE player='player1' AND statistic=0 AND time > DATE_SUB(now(), INTERVAL 1 MONTH)

现在我想要价值最高的前 10 名玩家。
示例:
player1 的值为 40(来自上面的查询)
player2 的值为 78(来自上面的查询)
player3 的值为 21(来自上面的查询)

现在排名必须是:

  1. 玩家2
  2. 玩家1
  3. 玩家3

但是如何排序呢?因为我需要上面查询的值?
谢谢

这是你想要的吗?

SELECT (@rn := @rn + 1) as ranking, p.*
FROM (SELECT player, COUNT(*) as cnt
      FROM test
      WHERE statistic=0 AND time > DATE_SUB(now(), INTERVAL 1 MONTH)
      GROUP BY player
      ORDER BY COUNT(*) desc
     ) p CROSS JOIN
     (SELECT @rn := 0) params
LIMIT 10;