私は次の表を持っています:
スコア:
user_id | match_id | points
1 | 110 | 4
1 | 111 | 3
1 | 112 | 3
2 | 111 | 2
ユーザーは試合に賭け、試合の結果に応じてポイントが付与されます。賭けがどれだけ正確であったかに応じて、試合に対して0、2、3、または4ポイントが与えられます。
ここで、ユーザーをランク付けして、誰が1位、2位かなどを確認できるようにします。ランク付けの順序は、最初にtotal_pointsです。これらが、ユーザーが4ポイントを獲得した回数、次にユーザーが3ポイントを獲得した回数などの順序で等しい場合。
そのためには、次の表が必要です。
user_id | total_points | #_of_fours | #_of_threes | #_of_twos
1 | 10 | 1 | 2 | 0
2 | 2 | 0 | 0 | 1
しかし、私はそれを取得するのに役立つ結合ステートメントを理解できません。
これは私が助けなしで得る限りです:
SELECT user_id、COUNT(points)AS#_of_foursFROMスコアWHEREポイント=4GROUP BY user_id
その結果
user_id | #_of_fours
1 | 1
2 | 0
これで、#_ of_threesとtwos、および合計ポイントに対してそれを実行し、すべてを結合する必要がありますが、その方法がわかりません。
ところで、MySQLを使用しています。
どんな助けでも本当に感謝されるでしょう。前もって感謝します