MySQL如何获取表中前100个值的MIN和MAX

时间:2014-03-23 04:01:58

标签: php mysql

我希望能够在我们的数据库中找到前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的最大值和最小值。抱歉,我认为这很清楚。

1 个答案:

答案 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;