2012-03-25 58 views
0

我有一個存儲分數的MYSQL表。 每次用戶改進一個新條目插入表中。表獲取用戶不同最佳分數的平均值

例子:

 
| userID | time | gameID | 
|--------------------------| 
| u1 | 3 | game1 | 
| u1 | 2 | game1 | 
| u2 | 3 | game1 | 
| u3 | 3 | game1 | 
| u1 | 3 | game2 | 
| u2 | 1 | game2 | 

我想查詢表,並得到一個表看起來像這樣。

 
| gameID | min_time | avg_time | 
|--------------------------------| 
| game1 |  2  | 2.66 | 
| game2 |  1  | 2.00 | 

我需要每個遊戲ID的平均時間僅由每個用戶的每場比賽最短時間(如果用戶玩的Game1只有三次最佳(最短)應該用於與其他普通的最短時間用戶)。

這可能與MYSQL查詢?

回答

3
SELECT 
    gameID 
    , MIN(min_time) AS min_time 
    , AVG(min_time) AS avg_time 
FROM 
    (SELECT 
      gameID 
     , MIN(time) AS min_time 
     FROM 
      tableX 
     GROUP BY 
      gameID 
     , userID 
    ) AS x 
GROUP BY 
    gameID 
+0

工程就像一個魅力!謝謝 – JNK 2012-03-26 12:57:26