• 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 
  • 相关阅读:
    Innodb存储引擎
    Innodb学习之MySQL体系结构
    C# sql查询数据库返回单个值方法
    Welcome To SWPUNC-ACM
    P2184 贪婪大陆 题解
    线上Java调优-Arthas入门
    JVM调优学习笔记
    RabbitMQ博文收藏
    System.Net.WebException: 远程服务器返回错误: (405) 不允许的方法。
    随机过程-Brown运动
  • 原文地址:https://www.cnblogs.com/zzlp/p/5109497.html
Copyright © 2020-2023  润新知