加入收藏 | 设为首页 | 会员中心 | 我要投稿 拼字网 - 核心网 (https://www.hexinwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

如何在MySQL中运用count聚合函数

发布时间:2022-02-16 02:05:41 所属栏目:MySql教程 来源:互联网
导读:如何在MySQL中使用count聚合函数?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 一、 基本使用 count的基本作用是有两个: 统计某个列的数据的数量; 统计结果集的行数; 用来获取满足条
       如何在MySQL中使用count聚合函数?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
 
一、 基本使用
 
count的基本作用是有两个:
 
统计某个列的数据的数量;
统计结果集的行数;
用来获取满足条件的数据的数量。但是其中有一些与使用中印象不同的情况,比如当count作用一列、多列、以及使用*来表达整行产生的效果是不同的。
 
示例表如下:
 
CREATE TABLE `NewTable` (
`id` int(11) NULL DEFAULT NULL ,
`name` varchar(30) NULL DEFAULT NULL ,
`country` varchar(50) NULL DEFAULT NULL ,
`province` varchar(30) NULL DEFAULT NULL ,
`city` varchar(30) NULL DEFAULT NULL
)ENGINE=InnoDB
如何在MySQL中使用count聚合函数
 
1.1 不计算NULL的值
 
如果有NULL值,在返回的结果中会被过滤掉
 
select count(country) from person;
 
返回结果如下:
 
如何在MySQL中使用count聚合函数
 
如果满足条件的数据项不存在,则结构返回0,经常通过这种方式判断是否有满足条件的数据存在;返回的数据类型是bigint。
 
1.2 对count(*)的处理
 
count(*)的处理是有点不同的,它会返回所有数据的数量,但是不会过滤其中的NULL值,它也并不是相当于展开成所有的列,而是直接会忽略所有的列而直接统计所有的行数。语句如下:
 
select count(*) from person;
  
当想要返回所有的数据的数量的时候,但是又不想包括全部是NULL的列,使用count(*)是不可能做到的,但是在1.1中说到count作用于列的时候会过滤NULL,那么直接这么写是不是对?
 
select count(id, `name`, country, province, city) from person;
 
那就错了,count只能作用于单列,不能作用于多列 ,所以上面的写法是错误的。

(编辑:拼字网 - 核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!