数ヶ月前、私はこれに似た何かについて質問し、助けを受けて、答えがあると思いました。3か月後、これが100%機能しなかったので、もう少し助けが必要ですが、理解が深まったので、質問をもっとよくすることができます。
私はmysqlテーブルを持っていますid, userid, rounds, reps, exerciseid
自分が引っ張っているエクササイズに固有の最高のラウンドをユーザーに引っ張る必要があります。したがって、exerciseid
8の場合、そのためにユーザーがトップラウンドである必要がありますexerciseid
が、ユーザーが同じrounds
ものを複数回持っている場合、これは頻繁に発生しreps
ます。真の最高のパフォーマンスを得るには、それをで並べ替える必要があります。次に、これらの結果を取得した後、このデータセットをrounds
で並べ替える必要があります。reps
したがって、複数の一意のユーザーが同じrounds
ものを持っている場合は、で並べ替えられreps
ます。
これは純粋なmysqlで実行できますか、それともデータをプルしてすべてをPHPで並べ替えたほうがいいですか?
SELECT
max(l.rounds) as rounds,
l.reps,l.userid
from leaderboard l
where l.exerciseid = 8
group by l.userid
order by
rounds desc,
reps desc
構造の例最初にこれはsmapleセットです
userid exerciseid rounds reps
-- -- --
1 8 23 10
1 8 23 15
1 8 20 10
2 8 28 19
2 8 15 12
3 8 40 29
results I want
userid exerciseid rounds reps
-- -- --
3 8 40 29
2 8 28 19
1 8 23 15