首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Mysql COUNT() 函数详解

Mysql COUNT() 函数详解

原创
作者头像
六月的雨在Tencent
修改2024-11-26 22:37:38
修改2024-11-26 22:37:38
7380
举报

好事发生

今天要介绍的好事文章是一篇关于如何高效排查SQL问题的文章,文章标题【借助AI助手如何高效排查SQL问题】,文章链接:https://cloud.tencent.com/developer/article/2471390 这篇文章高效排查SQL问题的主角比较特殊,借助AI助手来排查。文章详细通过借助AI助手排查SQL问题的几种情况,解说的容易理解,值得参考。

下面开始说今天的正文内容...

在使用Mysql的时候,作为开发者,聚合函数是肯定会用到的,下面就来说说我们常用到的统计行数的聚合函数 COUNT()。

COUNT() 的几种用法

说到COUNT() 函数,最常用的几种方法就是 COUNT(*) 、COUNT(1)、 COUNT(column),那么关于这几种 COUNT() 函数的不同之处这里就来详细说说,这里提前准备一个表并填充部分数据,比如

代码语言:sql
复制
SELECT * FROM sys_post;

查询结果如下图所示,可以看到sys_post的一些数据信息

COUNT(*)

首先利用COUNT() 来统计表中满足条件的所有的数据行数,COUNT() 统计行数通常包括 NULL 和重复项,比如

代码语言:sql
复制
SELECT COUNT(*) FROM sys_post;

统计结果如图所示,满足我们的预期,统计了包括NULL在内的数据数量

COUNT(1)

下面我们再利用 COUNT(1) 来统计 sys_post表的数据量,其实 COUNT(1) 和 COUNT(*) 差不多,统计表中满足条件的所有数据行数,包括 NULL和重复项,比如

代码语言:sql
复制
SELECT COUNT(1) FROM sys_post;

统计结果如图所示,和我们上面使用 COUNT(*)的统计结果是一样的,也是包含了NULL在内的数量

COUNT(column)

还有一种统计数据的方法,就是通过 COUNT(column) 来统计指定列名的数据量,COUNT(column) 统计列名会统计满足条件的所有数据行数,不包括指定列名为 NULL的数据,比如

代码语言:sql
复制
SELECT COUNT(create_by) FROM sys_post;

根据预期来看,统计结果应该是 4 因为有一条数据的create_by 是 NULL,通过 COUNT(column) 来统计数量的时候是不会统计当前 column 为 NULL的数据的

COUNT(*) 与 GROUP BY

除了单纯的统计数量外,还可以结合 group by 来分组统计不同情况的数量,这里统计不同 create_by 的数据行数,比如

代码语言:sql
复制
SELECT create_by,COUNT(*) FROM sys_post GROUP BY create_by;

统计结果如图所示

COUNT(*) 与 GROUP BY 和 HAVING

当然,除了分组统计指定 column 的数量的情况,还会遇到增加统计数量筛选条件的情况,就像下面这样,这类统计不同create_by 的数据行数,并筛选出 COUNT(*) > 1 的数据,比如

代码语言:sql
复制
SELECT create_by,COUNT(*) FROM sys_post GROUP BY create_by HAVING COUNT(*)>1;

统计结果如图所示

到这里关于mysql 统计函数 count() 函数的一些介绍以及基本用法就说完了。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 好事发生
  • COUNT() 的几种用法
  • COUNT(*)
  • COUNT(1)
  • COUNT(column)
  • COUNT(*) 与 GROUP BY
  • COUNT(*) 与 GROUP BY 和 HAVING
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档