現在、次のデータを取得しようとしています。
UserName、UserImageURL、合計ゲーム数、完了したゲーム数、負けたゲーム数、平均勝率 (パーセンテージ)、およびユーザーのポイント
また、別のデータセット:
次のようなユーザー統計データ:
- リーグでプレイされた最多ゲーム: 23 - モンスター キラーズ
- 最も多く勝ったゲーム: 19/23 - Monster Killers
- 最も失われたゲーム: 3/32 - Frog Racers
- ゲームの勝利精度 (全ゲームの合計) - 68% の精度
サイト統計:
- リーグでプレイされた最多ゲーム: 650 - ヘリコプター ラン
- トップ ゲーム: 1200 - モンスター キラーズ
- サイト全体の当選精度: 82%
次のテーブルがあります。
-ユーザーテーブル-
userID (int-pk)、userName (varchar)、userImageUrl (テキスト)
-ゲームテーブル-
gameId (int-pk)、gameName (varchar)、gameUserID (int)、gameLeagueId (int)、score1 (int)、score2 (int)、gameResultOut (0 または 1)、gameWon (0 または 1)
<ユーザーバランス表>
ubId(int-pk) userId (int) 残高 (int)
-リーグテーブル- LeagueId (int-pk) LeagueName (varchar)
ユーザーがゲームをプレイして結果を選択すると、games テーブルに行が挿入されます。ゲームは時間ベースであるため、結果が出ると、その ID を持つゲームがあるかどうかをチェックし、ユーザーが選択したものに従って gameResultOut を 1 に更新し、gameWon を 1 または 0 に更新します。スコア。
私は次のことを試しました:
SELECT u.userID, u.userName, u.userImageUrl, l.leagueName ,
COUNT(g.gameId) AS predTotal,
(SELECT COUNT(g.gameId) FROM games AS g WHERE g.gameResultOut = 1 AND g.gameWon = 1) AS gamesWon,
(SELECT COUNT(g.gameId) FROM games AS g WHERE g.gameResultOut = 1 AND g.gameWon = 0) AS gamesLost,
ub.balance
FROM games AS g
LEFT JOIN league AS l ON l.leagueId = g.gameLeagueId
LEFT JOIN user AS u ON u.user_id = g.gameUserID
LEFT JOIN user_balance AS ub ON ub.userId = u.userID
WHERE l.leagueId = 4
GROUP BY u.userId
ORDER BY ub.balance DESC
クエリの後で勝率を簡単に計算できるので問題ありませんが、勝敗の結果はすべて同じであり、leageId を変更しても結果は同じです。これは私が望むものではありません。 .
誰でも助けることができますか?
よろしくお願いします、ネクロン