五种统计函数: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基础之 统计函数总结的更多相关文章

  1. mysql基础知识语法汇总整理(二)

    mysql基础知识语法汇总整理(一) insert /*insert*/ insert into 表名(字段列表) values(值列表); --蠕虫复制 (优点:快速复制数据,测试服务器压力) in ...

  2. Mysql基础代码(不断完善中)

    Mysql基础代码,不断完善中~ /* 启动MySQL */ net start mysql /* 连接与断开服务器 */ mysql -h 地址 -P 端口 -u 用户名 -p 密码 /* 跳过权限 ...

  3. MYSQL基础操作

    MYSQL基础操作 [TOC] 1.基本定义 1.1.关系型数据库系统 关系型数据库系统是建立在关系模型上的数据库系统 什么是关系模型呢? 1.数据结构可以规定,同类数据结构一致,就是一个二维的表格 ...

  4. 【夯实Mysql基础】记一次mysql语句的优化过程

    1. [事件起因] 今天在做项目的时候,发现提供给客户端的接口时间很慢,达到了2秒多,我第一时间,抓了接口,看了运行的sql,发现就是 2个sql慢,分别占了1秒多. 一个sql是 链接了5个表同时使 ...

  5. MySQL基础(非常全)

    MySQL基础 一.MySQL概述 1.什么是数据库 ? 答:数据的仓库,如:在ATM的示例中我们创建了一个 db 目录,称其为数据库 2.什么是 MySQL.Oracle.SQLite.Access ...

  6. mysql 基础篇5(mysql语法---数据)

    6 增删改数据 -- ********一.增删改数据********* --- -- 1.1 增加数据 -- 插入所有字段.一定依次按顺序插入 INSERT INTO student VALUES(1 ...

  7. MySQL 基础语句

    MySQL 基础语句 多个知识点 ----------------------------------------------------------------------------------- ...

  8. MySQL:基础—数据分组

    MySQL:基础-数据分组 1.为什么要分组: 比如一个表中有多条订单记录,如上图,每条记录对应着一个商品,现在我要查询 每个商品被订购的单数 准备出货?也就是找到每个商品被订购的数量. 如果只找一个 ...

  9. MySQL基础学习总结

    1.MySQL基础概念 mysql逻辑架构如下: 每个客户端连接都会在服务器中拥有一个线程,这个连接的查询只会在这个单独的线程中执行. MySQL是分层的架构.上层是服务器层的服务和查询执行引擎,下层 ...

随机推荐

  1. Spark(1.6.1) Sql 编程指南+实战案例分析

    首先看看从官网学习后总结的一个思维导图 概述(Overview) Spark SQL是Spark的一个模块,用于结构化数据处理.它提供了一个编程的抽象被称为DataFrames,也可以作为分布式SQL ...

  2. AD分类论文研读(1)

    转移性学习对阿尔茨海默病分类的研究 原文链接 摘要 将cv用于研究需要大量的训练图片,同时需要对深层网络的体系结构进行仔细优化.该研究尝试用转移学习来解决这些问题,使用从大基准数据集组成的自然图像得到 ...

  3. Java设计模式学习记录-单例模式

    前言 已经介绍和学习了两个创建型模式了,今天来学习一下另一个非常常见的创建型模式,单例模式. 单例模式也被称为单件模式(或单体模式),主要作用是控制某个类型的实例数量是一个,而且只有一个. 单例模式 ...

  4. UVa 10129 Play on Words(并查集+欧拉路径)

    题目链接: https://cn.vjudge.net/problem/UVA-10129 Some of the secret doors contain a very interesting wo ...

  5. Netty 核心组件 EventLoop 源码解析

    前言 在前文 Netty 启动过程源码分析 (本文超长慎读)(基于4.1.23) 中,我们分析了整个服务器端的启动过程.在那篇文章中,我们重点关注了启动过程,而在启动过程中对核心组件并没有进行详细介绍 ...

  6. Selenium使用总结(Java版本)

    硒在最近的发展中被广泛应用,因为它以前没有被使用过,并且已经走了太多的坑.这是一张唱片. 1.环境配置 配置要点: 1.Web驱动程序应该与浏览器版本相对应,chrome使用chrome驱动程序和ch ...

  7. Unix环境高级编程:fork, vfork, clone

    fork fork产生的子进程是传统意义上的进程,fork之后执行路径就互不关联了,一旦fork返回后面的代码就在不用的进程上下文中执行了.到底是子进程先执行还是父进程先执行一般是随机的或者依赖实现的 ...

  8. nodejs 新建项目

    第一步: 新建工程-->选择nodejs-->creat 注意: 如果出错就使用第二步!! 第二步:建立express 模板的nodejs 点击下图的命令窗口,依次输入下面命令 命令: & ...

  9. 关于Mysql数据库的知识总结

    2017年6月8日,天气阴.心情晴. 连续做梦两个晚上了,昨晚竟然梦见一个很长时间不联系的初中同学了,早上上班的路上聊了聊.女孩现在出差在贵州,风景秀美的地方.我说“你现在生活很滋润”.女孩说“那是你 ...

  10. C#版Aliyun DNS API

    阿里云解析API,是为域名开发者.注册商.域名代理商等提供的开放和便捷的解析服务接口.API依托于万网云解析服务,可以方便的管理域名和解析记录,让你的解析管理变的随心省时自由舒畅. 一.先附上Aliy ...