2012-08-16 45 views
1

我的數據庫結構表「分數」排序最高的分數在每個玩家的時間長度

player_id  score    time 
    1001   100  2000-01-01 00:00:00 
    1001    3  2012-08-01 00:00:00 
    1001   11  2012-08-02 00:00:00 
    1002   80  2012-07-01 00:00:00 
    1002    5  2012-08-01 00:00:00 
    1003   90  2012-07-01 00:00:00 

我嘗試使用

SELECT * FROM Score WHERE MONTH(time) = MONTH(NOW()) ORDER BY score DESC 

從結果

Table 'Player' : column 'id' 
Table 'Score' : column 'player_id' , 'score' , 'time' 

例如數據玩家1001將分數11和3的多行。
如何排序並獲得最大sco再在時間長度應該只得分球員1001

11日的結果應該是

player_id  score    time 
    1001   11  2012-08-02 00:00:00 
    1002    5  2012-08-01 00:00:00 

player_id  score    time 
    1001   11  2012-08-02 00:00:00 
    1001    3  2012-08-01 00:00:00 
    1002    5  2012-08-01 00:00:00 

回答

2
SELECT player_id, max(score) as max_score 
FROM Score 
WHERE MONTH(time) = MONTH(NOW()) 
group by player_id 
ORDER BY max_score DESC 
1

試試這個:

SELECT player_id, max(score) as score, month(time) 
FROM Score 
WHERE MONTH(time) = MONTH(NOW()) 
GROUP BY Player_id, month(time) 
ORDER BY score DESC 
相關問題