前言

本文实现的这个需求其实十分普遍,举例来说,我们存在一个用户来源表,用来标记用户从哪个渠道注册进来。表结构如下所示…
其中 origin 是用户来源,其中的值有 iPhone 、Android 、Web 三种,现在需要分别统计由这三种渠道注册的用户数量。
解决方案1
SELECT count(*) FROM user_operation_log WHERE origin = 'iPhone'; SELECT count(*) FROM user_operation_log WHERE origin = 'Android'; SELECT count(*) FROM user_operation_log WHERE origin = 'Web';
用 where 语句分别统计各自的数量。
这样查询的量有点多了,如果这个值有 10 个呢,那还得写 10 条相似的语句,很麻烦。
有没有一条语句就搞定的呢?于是去查了些资料。
解决方案2
我们知道 count 不仅可以用来统计行数,也能统计列值的数量,例如:
统计 user_operation_log 有多少行:
SELECT count(*) FROM user_operation_log
统计 origin 这列值不为 NULL 的数量:
SELECT count(origin) FROM user_operation_log
所以我们可以利用这个特性来实现上面的需求
第一种写法(用 count 实现)
SELECT count(origin = 'iPhone' OR NULL) AS iPhone, count(origin = 'Android' OR NULL) AS Android, count(origin = 'Web' OR NULL) AS Web FROM user_operation_log;
查询结果
第二种写法(用 sum 实现)
SELECT sum(if(origin = 'iPhone', 1, 0)) AS iPhone, sum(if(origin = 'Android', 1, 0)) AS Android, sum(if(origin = 'Web', 1, 0)) AS Web FROM user_operation_log;
查询结果
第三种写法(改写 sum)
SELECT sum(origin = 'iPhone') AS iPhone, sum(origin = 'Android') AS Android, sum(origin = 'Web') AS Web FROM user_operation_log;
查询结果
第四种写法(来自掘金用户 杰夫 的答案)
SELECT origin,count(*) num FROM user_operation_log GROUP BY origin;
查询结果
至此,已经达到了我们的需求。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。
# mysql
# 列数量
# 查询数量
# 分组后统计数量
# 在SQL中对同一个字段不同值
# 进行数据统计操作
# 如何使用MySQL查询某个列中相同值的数量统计
# mysql如何统计同一字段不同值的个数
# 查询结果
# 也能
# 举例来说
# 我们可以
# 有多少
# 达到了
# 三种
# 还得
# 不为
# 所示
# 这篇文章
# 谢谢大家
# 来实现
# 第二种
# 第一种
# 可以用来
# 很麻烦
# 第三种
# 去查
# 这三种
相关文章:
单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?
建站VPS能否同时实现高效与安全翻墙?
如何配置WinSCP新建站点的密钥验证步骤?
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
制作网站外包平台,自动化接单网站有哪些?
Python lxml的etree和ElementTree有什么区别
建站168自助建站系统:快速模板定制与SEO优化指南
成都网站制作价格表,现在成都广电的单独网络宽带有多少的,资费是什么情况呢?
企业微网站怎么做,公司网站和公众号有什么区别?
长沙做网站要多少钱,长沙国安网络怎么样?
如何在腾讯云服务器上快速搭建个人网站?
网站制作价目表怎么做,珍爱网婚介费用多少?
制作公司内部网站有哪些,内网如何建网站?
宁波自助建站系统如何快速打造专业企业网站?
宝华建站服务条款解析:五站合一功能与SEO优化设置指南
网站制作培训多少钱一个月,网站优化seo培训课程有哪些?
香港网站服务器数量如何影响SEO优化效果?
香港服务器租用每月最低只需15元?
如何用PHP快速搭建CMS系统?
网站制作公司排行榜,抖音怎样做个人官方网站
如何通过建站之星自助学习解决操作问题?
如何在自有机房高效搭建专业网站?
nginx修改上传文件大小限制的方法
如何选择高效稳定的ISP建站解决方案?
北京网页设计制作网站有哪些,继续教育自动播放怎么设置?
mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?
存储型VPS适合搭建中小型网站吗?
建站之星导航菜单设置与功能模块配置全攻略
建站主机如何选?高性价比方案全解析
建站之星CMS五站合一模板配置与SEO优化指南
如何设置并定期更换建站之星安全管理员密码?
如何零基础开发自助建站系统?完整教程解析
如何通过主机屋免费建站教程十分钟搭建网站?
如何在阿里云域名上完成建站全流程?
建站之星如何保障用户数据免受黑客入侵?
用v-html解决Vue.js渲染中html标签不被解析的问题
建设网站制作价格,怎样建立自己的公司网站?
网站制作公司,橙子建站是合法的吗?
如何在阿里云高效完成企业建站全流程?
赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?
javascript中对象的定义、使用以及对象和原型链操作小结
已有域名和空间如何搭建网站?
建站之星安装提示数据库无法连接如何解决?
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
网站制作软件有哪些,制图软件有哪些?
建站之星会员如何解锁更多建站功能?
如何在Windows 2008云服务器安全搭建网站?
制作企业网站建设方案,怎样建设一个公司网站?
广平建站公司哪家专业可靠?如何选择?
如何批量查询域名的建站时间记录?
*请认真填写需求信息,我们会在24小时内与您取得联系。