如何在MySQL中运用count聚合函数
发布时间:2022-02-15 15:50:56 所属栏目: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只能作用于单列,不能作用于多列 ,所以上面的写法是错误的。 (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |