停留在查詢上的類型。我有一張測驗結果表,其中包含:SQL查找每組最高記錄
ID of the player,
QuizID,
Number of seconds it took to complete the quiz,
Number of correct answers
我如何找到每個測驗的勝者。 =玩家的最大正確答案數量和每個QuizID的最短秒數
我已經嘗試了很多方法,但我無法獲得正確的結果。希望有人能幫忙。
謝謝!
停留在查詢上的類型。我有一張測驗結果表,其中包含:SQL查找每組最高記錄
ID of the player,
QuizID,
Number of seconds it took to complete the quiz,
Number of correct answers
我如何找到每個測驗的勝者。 =玩家的最大正確答案數量和每個QuizID的最短秒數
我已經嘗試了很多方法,但我無法獲得正確的結果。希望有人能幫忙。
謝謝!
CTE將計算髮生在測驗每個玩家。主要查詢僅篩選第一個職位。
; with quiz as (
select QuizId, PlayerID, row_number() over (partition by QuizId order by count_answers desc, seconds) rownum
from QuizResults
)
select *
from QuizResults
inner join Quiz
on QuizResults.QuizID = Quiz.QuizID
and QuizResults.PlayerID = Quiz.PlayerID
where rownum = 1
未驗證:
select ID
from your_table
group by QuizId
having max(count_answers) and min(seconds)
這隻會顯示最高紀錄,而不是最高的每組。 – 2012-03-08 09:07:21
如果有兩名玩家的正確答案數和同一時間數相同,您希望發生什麼? – 2012-03-08 09:00:07
如果一個玩家擁有最多正確答案而另一個玩家擁有最少秒數? – 2012-03-08 09:02:44
AT:Mark如果有兩個玩家的正確答案和時間相同,那麼它將是第一個進入的玩家,所以最低的玩家ID將在這裏進行。 AT:ypercube我想讓球員用最少的時間回答最正確的球員 – gen 2012-03-08 09:31:00