资讯专栏INFORMATION COLUMN

mysql统计一个列中不同值的数量

darkbaby123 / 1514人阅读

摘要:统计一个列中不同值的数量需求统计一个列中不同值的数量,其中是用户来源,其中的值有三种,现在需要分别统计由这三种渠道注册的用户数量。方案用语句分别统计各自的数量。这样查询的量有点多了,如果这个值有个呢,那还得写条相似的语句,很麻烦。

MySQL 统计一个列中不同值的数量
需求:
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 实现)

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;

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/47644.html

相关文章

  • MySQL查询某个列中相同值的数量统计

    摘要:前言今天突然想到自己写的课表查询没有加统计功能,因此今天加上了统计,记录了请求的类型事件和时间,等新学期到来的时候就能用上了,毕竟刚开学同学们还是比较在意这学期都有什么课的哈哈哈,而且也能够丰富一下文经课表产品页的内容。 前言 今天突然想到自己写的课表查询Api没有加统计功能,因此今天加上了统计,记录了请求的类型、事件和时间,等新学期到来的时候就能用上了,毕竟刚开学同学们还是比较在意这...

    Aklman 评论0 收藏0
  • mysql - 收藏集 - 掘金

    摘要:步优化以及其它数据库后端掘金原文链接在发表了一篇简洁有效有趣和令人信服的分钟教程描述了如何进行优化。关于的七种后端掘金对于的,在学习起来可能是比较乱的。 5 步优化 MongoDB 以及其它数据库 - 后端 - 掘金原文链接 Jared Rosoff 在 Scale Out Camp 发表了一篇简洁、有效、有趣和令人信服的《8 分钟 MongoDB 教程》描述了如何进行 MongoDB...

    roadtogeek 评论0 收藏0
  • mysql - 收藏集 - 掘金

    摘要:步优化以及其它数据库后端掘金原文链接在发表了一篇简洁有效有趣和令人信服的分钟教程描述了如何进行优化。关于的七种后端掘金对于的,在学习起来可能是比较乱的。 5 步优化 MongoDB 以及其它数据库 - 后端 - 掘金原文链接 Jared Rosoff 在 Scale Out Camp 发表了一篇简洁、有效、有趣和令人信服的《8 分钟 MongoDB 教程》描述了如何进行 MongoDB...

    Donald 评论0 收藏0
  • 10个Python Pandas技巧,使您的工作更有效率

    摘要:是一个广泛用于结构化数据的包。因此,的任何变化都会导致发生变化。这是检查值分布的命令。这也是每个人都会使用的命令。我想在这里指出两个技巧。另一个技巧是处理混合在一起的整数和缺失值。将所有浮点数舍入为整数。 showImg(https://segmentfault.com/img/remote/1460000019138448?w=432&h=270); Pandas是一个广泛用于结构化...

    stormjun 评论0 收藏0
  • MySql查询性能优化

    摘要:如果缓存的是关联查询的结果,那么其中的一个表发生变化,整个缓存就失效了。例如上面用代替关联查询比随机的关联更加高效。优化关联查询,要确保或者子句中的列上有索引,并且在建立索引时需要考虑到关联的顺序。 避免向数据库请求不需要的数据 在访问数据库时,应该只请求需要的行和列。请求多余的行和列会消耗MySql服务器的CPU和内存资源,并增加网络开销。例如在处理分页时,应该使用LIMIT限制My...

    魏宪会 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<