zoukankan      html  css  js  c++  java
  • 怎样使 mysql count(*) 统计项可以显示为 0

    假设要分别统计 小明,小王,小红 三人本学期迟到次数。

    由于小王没有迟到过,所以缺勤流水表格当中没有小王的记录,如果我们这样搜索:

    1 select name, count(*) from {缺勤流水表格} where name in (小明,小王,小红) group by name

    那么我们得到的将是:

    小明  3

    小红  4

    并没有小王的记录!

    解决方法 -- 运用CASE WHEN语句:

    1 slelct name, count(case when name in (小明,小王,小红) then 1 else 0 end)  from {缺勤流水表格}  group by name

    得到的结果为:

    小明  3

    小王  0

    小红  4

     另外说一下,不是每中情况下都能找到这样的 case when语句,也有可能需要我们对sql语句改动一下,例如:

    1 select t1.name,  ifnull( t2.count,0)  from {缺勤流水表格} as t1
    2 
    3 join
    4 
    5 (select id, name, count(*) as count from {缺勤流水表格} where name in (小明,小王,小红) group by name) as t2
    6 
    7 on t1.id = t2.id
  • 相关阅读:
    Unity Ioc框架简单例子
    Newtonsoft.Json.Linq
    Quartz.net
    AngularJS
    Zookeeper
    mysql 游标CURSOR
    mysql 存储过程 CONCAT 字符串拼接
    MD5Util
    生成缩略图
    Asp.net MVC 基于Area的路由映射
  • 原文地址:https://www.cnblogs.com/yxmfighting/p/7016786.html
Copyright © 2011-2022 走看看