我希望能够在我们的数据库中找到前100个分数的最大值和最小值。
看起来它应该很简单,但我遗漏了一些东西。
我试过
SELECT
MAX(BEST_GAME_SCORE) as max_bgs ,
MIN(BEST_GAME_SCORE) as min_bgs
FROM user
WHERE BEST_GAME_SCORE IN (SELECT BEST_GAME_SCORE
FROM user
ORDER BY BEST_GAME_SCORE DESC
LIMIT 100)
但是...... LIMIT在子查询中不起作用
我尝试过使用JOIN,但我总是得到0,其中连接中的min不应为0
SELECT
MAX(user.BEST_GAME_SCORE),
MIN(user.BEST_GAME_SCORE)
FROM user
JOIN ( SELECT user.BEST_GAME_SCORE
FROM user
ORDER BY user.BEST_GAME_SCORE DESC
LIMIT 100) latest
编辑: 例如 如果我有一张包含以下分数的表
1000
900
800
700
600
500
400
300
200
100
我想选择前5个分数(即1000,900,800,700,600),但查询只返回1000和600的最大值和最小值。抱歉,我认为这很清楚。
答案 0 :(得分:3)
使用子查询:
SELECT MAX(BEST_GAME_SCORE) as max_bgs , MIN(BEST_GAME_SCORE) as min_bgs
from (SELECT BEST_GAME_SCORE
FROM user
ORDER BY BEST_GAME_SCORE DESC
LIMIT 100
) u;