我正试图想出一个 SQL 来获取每一个
- 国家名称,
- 代码,
- 游戏数量,
- TOP 玩家的名字和
- 他的身份证
- 基于游戏表中的 SUM(评分)。
我无法根据评分获取顶级玩家的名字。
SQLFiddle Demo
最佳答案
SELECT x.Country AS CountryName,
x.Code,
a.totalCount as NumberOfGames,
y.Name AS PlayersName,
y.ID AS PlayersID,
a.totalRating
FROM (
SELECT player_ID, Country, COUNT(*) totalCount, SUM(Rating) totalRating
FROM Games
GROUP BY player_ID, Country
) a
INNER JOIN
(
SELECT Country, Max(totaLRating) maxRating
FROM
(
SELECT player_ID, Country, SUM(Rating) totalRating
FROM Games
GROUP BY player_ID, Country
) s
GROUP BY Country
) b ON a.Country = b.Country AND
a.totalRating = b.maxRating
INNER JOIN Country x
ON a.Country = x.ID
INNER JOIN Players y
ON a.player_ID = y.ID
关于mysql - SQL 用于根据评分获取顶级用户并使用结果获取其他数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13678619/