1

そんなテーブルがあります

id  UserID      score   create_time     
7   002YEXEKF9  120000  2013-06-06 14:04:52     
8   0008FV2FN5  120     2013-06-06 15:10:39             
9   0008FV2FN5  130     2013-06-06 16:57:27             
10  DT5LP0V8AH  1200    2013-06-06 15:13:44         
11  DT5LP0V8AH  1400    2013-06-06 16:31:03     

選択データに次のクエリを使用します。

SELECT userid, score FROM high_score ORDER BY score DESC

結果:

userid      score 
002YEXEKF9  120000
DT5LP0V8AH  1400
DT5LP0V8AH  1200
0008FV2FN5  130
0008FV2FN5  120

ご覧のとおり、user_id DT5LP0V8AH,0008FV2FN5 には 2 つのスコアがあります。これは望ましくありません。ユーザーの最高スコアを表示したいのです。次のような結果が欲しいだけです:

userid      score 
002YEXEKF9  120000
DT5LP0V8AH  1400
0008FV2FN5  130

誰でもSQLを修正できますか?.本当に感謝しています。

4

3 に答える 3

2

MAX()最高のスコアとGROUP BY集計関数を取得してグループ化するために使用できると思いますuserid

SELECT userid, MAX(score) 
FROM high_score 
GROUP BY userid
ORDER BY score DESC
于 2013-06-06T10:18:29.780 に答える
0

必要な結果を得るにはMAX、を使用する必要があります。GROUP BY

SELECT userid, MAX(score) 
FROM high_score 
GROUP BY userid ORDER BY score DESC

MAXの詳細については、こちらをご覧ください。

GROUP BYの詳細を確認する

うまくいくことを願っています。

于 2013-06-06T10:21:26.870 に答える
0

これはうまくいくはずです(テストしていません)。

SELECT  userid, MAX(score) max_score FROM high_score GROUP BY userid ORDER BY max_score DESC
于 2013-06-06T10:24:03.083 に答える