mysql sum when then_MySQL中group by , sum , case when then 的使用

在我们使用数据库的时候,可能会遇到需要进行统计的情况。

比如需要统计一下,下表中各个年份的胜负场数。

d12f84c4520313a408885570f5abe088.png

6eb34e07677883357c6473ffe9be0073.png

遇到这样的情况,我们应该怎么办呢?

在mysql中我们可以使用group by sum  case when 来解决这个问题,sql语句如下:

select date_year,

sum(case when win_lose = '胜' then 1 else 0 end) win,

sum(case when win_lose = '负' then 1 else 0 end) lose

from scores group by date_year;

结果如下:

+-----------+------+------+

| date_year | win | lose |

+-----------+------+------+

| 2005 | 1 | 1 |

| 2006 | 2 | 1 |

| 2007 | 0 | 1 |

| 2008 | 2 | 1 |

| 2009 | 0 | 2 |

| 2010 | 1 | 1 |

| 2011 | 2 | 0 |

| 2012 | 2 | 1 |

| 2013 | 1 | 1 |

| 2014 | 3 | 2 |

| 2015 | 2 | 2 |

| 2016 | 1 | 0 |

| 2017 | 1 | 1 |

| 2018 | 1 | 3 |

+-----------+------+------+

14 rows in set (0.00 sec)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值