2012-03-25 7 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 | 

は私がgameIDのみ各ユーザーのユーザーは3回のみ最高(最短)他との平均のために使用されるべき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

関連する問題