简单的MySQL问题

时间:2013-08-28 18:47:21

标签: mysql

好的我有一个列有WL的列来表示输赢。我想计算所有的胜负,并获得胜率。

SELECT banner_name, count(win_loss) as wins 
FROM drop_log 
where win_loss = 'W' 
group by banner_name

这给了我所有的球队和他们有多少胜利。我如何调整这个以获得另一列损失,另一列用于比率。 MySQL似乎与SQL Server 2008具有不同的语法规则。

2 个答案:

答案 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

您也可以通过这种方式获得百分比,但也可以在选择后轻松划分。

最好使用布尔值(01)来指定赢或输,但这种方法的工作方式大致相同。

编辑:实际上只需使用SUM(win_loss = 'letter')即可,因为它会返回10

答案 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