我有一个关于sql的问题
我有一个表 'Player',我想要实现的是从 'Player' 创建一个新表 'Level',我用简单的 sql 完成的 nbPlayerPerLevel
select Level as LevelID,count(*) as nbPlayerPerLevel
from Player
group by Level
order by Level DESC
但困扰我的是我怎么能像以前一样获得 totalPlayer,非常感谢
表:播放器
playerID Level
1 3
2 5
3 10
4 3
5 5
---->
表格:级别
LevelID nbPlayerPerLevel totalPlayer
10 1 1
5 2 3
3 2 5
最佳答案
假设 totalPlay 是等于或高于给定级别的玩家数量,您需要:
SELECT
p.Level AS LevelID,
IFNULL(COUNT(DISTINCT p.playerID),0) AS nbPlayerPerLevel,
IFNULL(COUNT(DISTINCT pp.playerID),0) AS totalPlayer
FROM
Player AS p
LEFT JOIN Player AS pp ON p.Level<=pp.Level
GROUP BY p.Level
ORDER BY p.Level DESC
关于mysql - 如何在mysql中求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23458586/