MySQL基础之 统计函数总结
五种统计函数:count()、max()、avg()、min()、max()函数
count()函数
count()函数在进行计算的时候,是分情况进行计算的,主要是一下两种
1、采用count(*)对表中的记录进行统计,不管表字段中包含的是NULL值还是非NULL值,都会参与计算
2、而采用count(field)方式对表中的记录进行统计,如果所在的field中包含有NULL值,将忽略NULL值。
举例所示:
mysql> select * from test1_1; #可以看出来表中一共有6条记录,其中有条记录的name列包含NULL值
+----+--------+
| id | name |
+----+--------+
| 1 | 超峰 |
| 2 | b |
| 3 | c |
| 4 | a |
| 5 | chen |
| 6 | NULL |
+----+--------+
6 rows in set (0.00 sec) mysql> select count(*) from test1_1;
+----------+
| count(*) |
+----------+
| 6 |
+----------+
1 row in set (0.00 sec) mysql> select count(name) from test1_1; #NULL值将不参与计算
+-------------+
| count(name) |
+-------------+
| 5 |
+-------------+
1 row in set (0.00 sec)
sum()函数
sum()函数实现统计指定字段值之和,在具体统计时将忽略NULL值,但是不会忽略0值
举例子:
mysql> select * from test1_1;
+----+--------+-------+
| id | name | grade |
+----+--------+-------+
| 1 | 超峰 | 99 |
| 2 | b | 90 |
| 3 | c | 95 |
| 4 | a | 85 |
| 5 | chen | 90 |
| 6 | NULL | 90 |
+----+--------+-------+
6 rows in set (0.00 sec) mysql> select sum(grade) from test1_1;
+------------+
| sum(grade) |
+------------+
| 549 |
+------------+
1 row in set (0.00 sec) mysql> update test1_1 set grade=NULL where id=6;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0 mysql> select * from test1_1;
+----+--------+-------+
| id | name | grade |
+----+--------+-------+
| 1 | 超峰 | 99 |
| 2 | b | 90 |
| 3 | c | 95 |
| 4 | a | 85 |
| 5 | chen | 90 |
| 6 | NULL | NULL |
+----+--------+-------+
6 rows in set (0.00 sec) mysql> select sum(grade) from test1_1; #会发现NULL值没有参与计算
+------------+
| sum(grade) |
+------------+
| 459 |
+------------+
1 row in set (0.00 sec)
MAX()和MIN()函数
MAX函数和MIN函数会忽略值为NULL的数据,但是不会忽略值为0的数据
在此不做举例
针对没有任何数据的表,这五种函数的返回值是什么呢?
举例子:
mysql> select * from test1_5;
Empty set (0.00 sec) mysql> select count(*),avg(id),sum(id),max(id),min(id) from test1_5;
+----------+---------+---------+---------+---------+
| count(*) | avg(id) | sum(id) | max(id) | min(id) |
+----------+---------+---------+---------+---------+
| 0 | NULL | NULL | NULL | NULL |
+----------+---------+---------+---------+---------+
1 row in set (0.00 sec)
看的出来只有count函数的返回值是0,其他的函数返回值都是NULL。
MySQL基础之 统计函数总结的更多相关文章
- mysql基础知识语法汇总整理(二)
mysql基础知识语法汇总整理(一) insert /*insert*/ insert into 表名(字段列表) values(值列表); --蠕虫复制 (优点:快速复制数据,测试服务器压力) in ...
- Mysql基础代码(不断完善中)
Mysql基础代码,不断完善中~ /* 启动MySQL */ net start mysql /* 连接与断开服务器 */ mysql -h 地址 -P 端口 -u 用户名 -p 密码 /* 跳过权限 ...
- MYSQL基础操作
MYSQL基础操作 [TOC] 1.基本定义 1.1.关系型数据库系统 关系型数据库系统是建立在关系模型上的数据库系统 什么是关系模型呢? 1.数据结构可以规定,同类数据结构一致,就是一个二维的表格 ...
- 【夯实Mysql基础】记一次mysql语句的优化过程
1. [事件起因] 今天在做项目的时候,发现提供给客户端的接口时间很慢,达到了2秒多,我第一时间,抓了接口,看了运行的sql,发现就是 2个sql慢,分别占了1秒多. 一个sql是 链接了5个表同时使 ...
- MySQL基础(非常全)
MySQL基础 一.MySQL概述 1.什么是数据库 ? 答:数据的仓库,如:在ATM的示例中我们创建了一个 db 目录,称其为数据库 2.什么是 MySQL.Oracle.SQLite.Access ...
- mysql 基础篇5(mysql语法---数据)
6 增删改数据 -- ********一.增删改数据********* --- -- 1.1 增加数据 -- 插入所有字段.一定依次按顺序插入 INSERT INTO student VALUES(1 ...
- MySQL 基础语句
MySQL 基础语句 多个知识点 ----------------------------------------------------------------------------------- ...
- MySQL:基础—数据分组
MySQL:基础-数据分组 1.为什么要分组: 比如一个表中有多条订单记录,如上图,每条记录对应着一个商品,现在我要查询 每个商品被订购的单数 准备出货?也就是找到每个商品被订购的数量. 如果只找一个 ...
- MySQL基础学习总结
1.MySQL基础概念 mysql逻辑架构如下: 每个客户端连接都会在服务器中拥有一个线程,这个连接的查询只会在这个单独的线程中执行. MySQL是分层的架构.上层是服务器层的服务和查询执行引擎,下层 ...
随机推荐
- mysqldump 用法
mysqldump 是文本备份还是二进制备份 它是文本备份,如果你打开备份文件你将看到所有的语句,可以用于重新创建表和对象.它也有 insert 语句来使用数据构成表. mysqldump 的语法是什 ...
- Go常量与运算符
常量的定义 常量的值在编译时就已经确定 常量的定义格式与变量基本相同 等号右侧必须是常量或者常量表达式 常量表达式中的函数必须是内置函数 package main import ( "fmt ...
- react高阶组件的理解
[高阶组件和函数式编程] function hello() { console.log('hello jason'); } function WrapperHello(fn) { return fun ...
- ffplay源码分析6-音频重采样
本文为作者原创,转载请注明出处:https://www.cnblogs.com/leisure_chn/p/10312713.html ffplay是FFmpeg工程自带的简单播放器,使用FFmpeg ...
- js实现响应式瀑布流
导读:瀑布流,又称瀑布流式布局.是比较流行的一种网站页面布局,视觉表现为参差不齐的多栏布局,随着页面滚动条向下滚动,这种布局还会不断加载数据块并附加至当前尾部.最早采用此布局的网站是Pinterest ...
- VS2010 调试C++项目 fatal error LNK1123 错误解决办法
最近用VS2010写C++项目,奇怪的是每次生成解决方案都有一个fatal error LNK1123错误,提示生成失败.查阅资料总结解决方案如下: (1)项目——>属性——>连接器——& ...
- Git 入门详解
Git git核心概念详解 什么是git git是一个分布式版本控制软件,最初由林纳斯·托瓦兹创作,于2005年以GPL发布.最初目的是为更好地管理Linux内核开发而设计.应注意的是,这与GNU I ...
- 深入理解java虚拟机---3垃圾回收机制GC
本文来源于翁舒航的博客,点击即可跳转原文观看!!!(被转载或者拷贝走的内容可能缺失图片.视频等原文的内容) 若网站将链接屏蔽,可直接拷贝原文链接到地址栏跳转观看,原文链接:https://www.cn ...
- 关于项目管理工具 maven
众所周知,maven是目前很常用的项目管理工具.一般情况下,通过在pom.xml添加相应内容,再maven-->update就会自动把相应的jar包下载.配置好,非常方便. 一般每新建一个wor ...
- Contemplation! Algebra(矩阵快速幂,uva10655)
Problem EContemplation! AlgebraInput: Standard Input Output: Standard Output Time Limit: 1 Second Gi ...