排序另一个查询的最高值
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(来自上面的查询)
现在排名必须是:
- 玩家2
- 玩家1
- 玩家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;
要获取玩家上个月的统计值,我使用此查询:
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(来自上面的查询)
现在排名必须是:
- 玩家2
- 玩家1
- 玩家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;