Mysql 使用标准对记录进行计数
我使用下面的查询来计算列表中每个锦标赛的总玩家条目数Mysql 使用标准对记录进行计数,mysql,count,subquery,rdbms,Mysql,Count,Subquery,Rdbms,我使用下面的查询来计算列表中每个锦标赛的总玩家条目数 SELECT fab_tournaments.tournament, count(fab_plist.id) AS cnt FROM fab_plist INNER JOIN fab_tournaments ON fab_tournaments.id = fab_plist.tournament WHERE fab_tournaments.activation = 'No' GROUP BY fab_p
SELECT fab_tournaments.tournament, count(fab_plist.id) AS cnt
FROM fab_plist
INNER JOIN fab_tournaments ON fab_tournaments.id = fab_plist.tournament
WHERE fab_tournaments.activation = 'No'
GROUP BY fab_plist.tournament
ORDER BY cnt DESC
到目前为止一切都很好,并正确显示了每场比赛的球员总参赛人数。
问题是,由于球员是男性和女性,我想在两个不同的栏中计算每场比赛的男性和女性球员总数
我尝试使用子查询,但得到一个错误,子查询返回多行
有什么想法吗
提前谢谢 如果您使用的是MySQL,这将起作用
SELECT fab_plist.tournament,
SUM(fab_plist.gender = 'male') AS men,
SUM(fab_plist.gender = 'female') AS women,
COUNT(*) AS total
FROM fab_plist
INNER JOIN fab_tournaments ON fab_tournament.id = fab_plist.tournament
WHERE fab_tournament.activation = 'No'
GROUP BY fab_plist.tournament
如果您正在使用其他数据库,则可能必须更改为
SUM(CASE WHEN fab_plist.gender = 'male' THEN 1 END) AS men
女性也一样。请用您正在使用的RDBMS标记您的问题:MySQL、SQL Server、Oracle等。感谢您的回答,它成功了!事实上,我使用的是同一个查询,但我没有计算总和,而是对男性和女性进行计数-(