2016-11-28 22 views
0

私のクイズのアプリケーションAPIの1つでコードを注文しようとしています。私はユーザーのスコアと時間で結果のソートをしたい。私はスコアと時間のような列を持っています。スコアにはユーザーのスコアが含まれ、時間にはユーザーが終了クイズにかかった時間が含まれます。最高のスコア+最低の時間が最初になるように結果を並べ替える必要があります。そのため、現在の私のコードは複数の列を注文する

SELECT * FROM contest_score order by score desc, time ASC 

このコードが動作しますが、複数のユーザが、その最も低い時間を持っているだけのユーザーを示し、同じスコアをそこに持っている場合は、以下のようなものです。結果を得るためには何を修正すべきですか?例えば

3ユーザーは、スコアと時間

以下
user1 : score= 100, time =5.0 
user2 : score = 98 time = 6.0 
user3 : score = 100 time = 4.5 

のように、私は最初の=のユーザー3のようなユーザーを手配したい、USER1 =第二と第三user2の

おかげ

+3

実際のクエリですか?あなたが与えたように、それは行を省略しません。 –

+0

はい、私は投稿したものと同じものを使用しています...ありがとうございました – Priya

+0

これがクエリの場合、それはあなたがしたいようにソートする必要があります。あなたはどんな合計をしていますか? – raphael75

答えて

0

をそこに持っている場合、私はあなたを意味これを行うことができます:

SELECT * 
FROM contest_score 
order by 
    score desc, 
    CAST(time as DECIMAL(9,2)) ASC 

少し汚れています。より良いオプションは代わりに10進数で保存することです

+0

がうまく動作していると思います....ありがとう – Priya

関連する問題