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
  • 相关阅读:
    通过char与varchar的区别,学习可变长的字符类型
    laravel向视图传递变量
    MySQL数据库几种常用的索引类型使用介绍
    Java小知识点总结01
    好的代码习惯
    刻意练习
    算法
    经常复习
    kibana查询语法 使用教程
    工作思考
  • 原文地址:https://www.cnblogs.com/yxmfighting/p/7016786.html
Copyright © 2011-2022 走看看