Mysql count+if 函数结合使用
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Mysql count+if 函数结合使用,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1822字,纯文字阅读大概需要3分钟。
内容图文
![Mysql count+if 函数结合使用](/upload/InfoBanner/zyjiaocheng/496/422a54b675814956b2fa28c934830d80.jpg)
涉及函数
count函数
mysql中count函数用于统计数据表中的行的总数,或者根据查询结果统计某一列包含的行数,常见的用法如下 count(*) 计算表的总行数,包括空值 count(字段名) 计算指定列下的总行数,忽略空值(这点很重要,后面我们将利用这个特性)
if(expr, v1, v2)函数
if(expr, v1, v2) 函数的意思是,如果表达式expr为true(expr<>0 and expr <> NULL),则if()返回的是v1,否则返回v2
组合上述两个函数,可以在一条语句中统计出满足不同条件的行数
业务场景:在一个表中记录了不同出版社所拥有的所有的书,以及每本书对应的类型。
表结构如下:
id press bookName bookTyoe
1 新华出版社 《Thinking in Java》 计算机类
现需统计出不同出版社的里面不同类型的书籍的总量
例:统计不同出版社中文学类书籍数量
select count( if( bookTyoe = ‘文学类’, id, null ) ) from table group by press
分析:当type=1时,会返回对应的id的值,否则放回null,对于指定列的count函数,null是被忽略的,这样就得到了我们想要的统计数量了。
同理,统计不同出版社中科幻类+计算机书籍数量:
select count( if( bookTyoein (‘科幻类’, ‘计算机书籍’), id, null ) ) from table group by press
如果是联表查询,返回结果中的id不是唯一的话,想要去掉重复的id再统计,还可以在if前面加上DISTINCT,即 count( DISTINCT if( type in (2, 3), id, null ) )
等效写法 count( DISTINCT (type = 2 and type = 3) or null )
也可以使用sum+if替代上述写法
Mysql © 著作权归作者所有 举报文章select sum( if( bookTyoeinin (‘科幻类’, ‘计算机书籍’), 1, 0 ) )from table group by press
![Mysql count+if 函数结合使用 - 文章图片](/upload/getfiles/0001/2021/4/25/20210425011926334.jpg)
写了 4561 字,被 3 人关注,获得了 15 个喜欢
小礼物走一走,来简书关注我
Mysql count+if 函数结合使用
标签:结构 常见 sum 条件 分析 字段 com think apple
本文系统来源:http://www.cnblogs.com/zengpeng/p/8010794.html
内容总结
以上是互联网集市为您收集整理的Mysql count+if 函数结合使用全部内容,希望文章能够帮你解决Mysql count+if 函数结合使用所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。