zoukankan      html  css  js  c++  java
  • SQL sum case when then else【转】

    数据库 t

    表     b
    表内容
           Id        Name      胜负
           1          张三     胜
           2          李四     胜
           3          张三     胜
           4          张三     负
           5          王五     胜
           6          赵六     负
    要求显示谁胜了几场
    select Name, case 胜负 when '胜' then 1 else 0 as SF end from b
    显示的内容为
            Name    SF
            张三    1
            李四    1
            张三    1
            张三    0
            王五    1
            赵六    0
    把数字进行加法运算需要用到 sum  是根据Name 合并组的
    select Name,sum(case 胜负 when '胜' then 1 else 0 end) as '胜利的次数' from b group by Name
     
    显示的内容为
          Name              胜利的次数
          张三                2
          李四                1
          王五                1
          赵六                0
    如果要想把胜利几场和失败几场都显示出来
    select Name,sum(case 胜负 when '胜' then 1 else 0 end) as '胜利的次数',sum(case 胜负 when '负' then 1 else 0 end)as '失败的次数' from b group by Name
    显示的是
           Name               胜利的次数            失败的次数
           张三                 2                        1
           李四                 1                        0
           王五                 1                        0  
           赵六                 0                        1 
  • 相关阅读:
    题解报告——垃圾陷阱
    后缀自动机
    计算几何之凸包
    平衡树——treap
    图论--最小费用最大流(MCMF)
    很重要的吐槽!
    图论--网络流初步(最大流,增广路)
    字符串--Trie树(字典树)
    图论--Tarjan求强联通分量
    数据结构--堆
  • 原文地址:https://www.cnblogs.com/zzlp/p/5109497.html
Copyright © 2011-2022 走看看