我目前正在尝试获取以下数据:
用户名、UserImageURL、已玩游戏总数、已完成游戏、输掉游戏、平均获胜(百分比)和用户积分
还有另一组数据:
用户统计数据,例如:
- 联盟中玩的最多游戏:23 - Monster Killers
- 赢得最多的游戏:19/23 - Monster Killers
- 最迷失的游戏:3/32 - Frog Racers
- 您的游戏获胜准确率(所有游戏的总和)- 68% 准确率
网站统计:
- 联赛中玩的最多的游戏:650 - 直升机奔跑
- 热门游戏:1200 - Monster Killers
- 全站中标准确率:82%
我有以下表格:
-用户表-
userID (int-pk), userName (varchar), userImageUrl (text)
-游戏桌-
gameId (int-pk), gameName (varchar), gameUserID (int), gameLeagueId (int), score1 (int), score2 (int), gameResultOut (0 or 1), gameWon (0 or 1)
-用户余额表-
ubId(int-pk) userId (int) balance (int)
-联赛表- LeagueId (int-pk) LeagueName (varchar)
只是为了让您了解正在发生的事情,当用户玩游戏并选择一些结果时,会在游戏表中插入一行。由于游戏是基于时间的,所以当结果出来时,会检查是否有任何游戏具有该 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 时,结果仍然相同,这不是我想要的.
任何人都可以帮忙吗?
谢谢和问候, 死灵