全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

利用MySQL统计一列中不同值的数量方法示例

前言

本文实现的这个需求其实十分普遍,举例来说,我们存在一个用户来源表,用来标记用户从哪个渠道注册进来。表结构如下所示…

其中 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小时内与您取得联系。