我有一个很大的'得分'表,类似于以下内容:
quizid userid score high_score
1 john 50 0
1 bob 60 0
1 bob 65 0
1 steve 40 0
2 bob 20 0
2 bob 30 0
2 bob 15 0
当前'high_score'列为'0',因为它刚刚添加。我需要做的是做一个简单的查询来标记这个列,每个实例的用户得分是用户对该测验的最高分数,每个实例的分数为'1' - 即在运行查询后我应该这样:
quizid userid score high_score
1 john 50 1
1 bob 60 0
1 bob 65 1
1 steve 40 1
2 bob 20 0
2 bob 30 1
2 bob 15 0
任何帮助将不胜感激!
答案 0 :(得分:1)
我不确定,我没有测试下面的代码,但尝试它也许它可以帮助你
update scores set high_score=1 where (quizid,userid,score) in
(select quizid,userid,max(score) from scores group by quizid,userid)