好的我有一个列有W
或L
的列来表示输赢。我想计算所有的胜负,并获得胜率。
SELECT banner_name, count(win_loss) as wins
FROM drop_log
where win_loss = 'W'
group by banner_name
这给了我所有的球队和他们有多少胜利。我如何调整这个以获得另一列损失,另一列用于比率。 MySQL似乎与SQL Server 2008具有不同的语法规则。
答案 0 :(得分:6)
SELECT banner_name, SUM(IF(win_loss = "W", 1, 0)) AS wins,
SUM(IF(win_loss = "L", 1, 0)) AS losses
FROM drop_log
GROUP BY banner_name
您也可以通过这种方式获得百分比,但也可以在选择后轻松划分。
最好使用布尔值(0
或1
)来指定赢或输,但这种方法的工作方式大致相同。
编辑:实际上只需使用SUM(win_loss = 'letter')
即可,因为它会返回1
或0
。
答案 1 :(得分:1)
这将为您提供所需的全部3个值。
SELECT banner_name, wins, total-wins AS losses, wins/total AS win_ratio
FROM (select banner_name, SUM(win_losses = 'W') AS wins, COUNT(*) AS total
FROM drop_log
GROUP BY banner_name) w