五种统计函数:count()、max()、avg()、min()、max()函数

count()函数

count()函数在进行计算的时候,是分情况进行计算的,主要是一下两种

1、采用count(*)对表中的记录进行统计,不管表字段中包含的是NULL值还是非NULL值,都会参与计算

2、而采用count(field)方式对表中的记录进行统计,如果所在的field中包含有NULL值,将忽略NULL值。

举例所示:

  1. mysql> select * from test1_1; #可以看出来表中一共有6条记录,其中有条记录的name列包含NULL值
  2. +----+--------+
  3. | id | name |
  4. +----+--------+
  5. | 1 | 超峰 |
  6. | 2 | b |
  7. | 3 | c |
  8. | 4 | a |
  9. | 5 | chen |
  10. | 6 | NULL |
  11. +----+--------+
  12. 6 rows in set (0.00 sec)
  13.  
  14. mysql> select count(*) from test1_1;
  15. +----------+
  16. | count(*) |
  17. +----------+
  18. | 6 |
  19. +----------+
  20. 1 row in set (0.00 sec)
  21.  
  22. mysql> select count(name) from test1_1; #NULL值将不参与计算
  23. +-------------+
  24. | count(name) |
  25. +-------------+
  26. | 5 |
  27. +-------------+
  28. 1 row in set (0.00 sec)

sum()函数

sum()函数实现统计指定字段值之和,在具体统计时将忽略NULL值,但是不会忽略0值

举例子:

  1. mysql> select * from test1_1;
  2. +----+--------+-------+
  3. | id | name | grade |
  4. +----+--------+-------+
  5. | 1 | 超峰 | 99 |
  6. | 2 | b | 90 |
  7. | 3 | c | 95 |
  8. | 4 | a | 85 |
  9. | 5 | chen | 90 |
  10. | 6 | NULL | 90 |
  11. +----+--------+-------+
  12. 6 rows in set (0.00 sec)
  13.  
  14. mysql> select sum(grade) from test1_1;
  15. +------------+
  16. | sum(grade) |
  17. +------------+
  18. | 549 |
  19. +------------+
  20. 1 row in set (0.00 sec)
  21.  
  22. mysql> update test1_1 set grade=NULL where id=6;
  23. Query OK, 1 row affected (0.00 sec)
  24. Rows matched: 1 Changed: 1 Warnings: 0
  25.  
  26. mysql> select * from test1_1;
  27. +----+--------+-------+
  28. | id | name | grade |
  29. +----+--------+-------+
  30. | 1 | 超峰 | 99 |
  31. | 2 | b | 90 |
  32. | 3 | c | 95 |
  33. | 4 | a | 85 |
  34. | 5 | chen | 90 |
  35. | 6 | NULL | NULL |
  36. +----+--------+-------+
  37. 6 rows in set (0.00 sec)
  38.  
  39. mysql> select sum(grade) from test1_1; #会发现NULL值没有参与计算
  40. +------------+
  41. | sum(grade) |
  42. +------------+
  43. | 459 |
  44. +------------+
  45. 1 row in set (0.00 sec)

MAX()和MIN()函数

MAX函数和MIN函数会忽略值为NULL的数据,但是不会忽略值为0的数据

在此不做举例

针对没有任何数据的表,这五种函数的返回值是什么呢?

举例子:

  1. mysql> select * from test1_5;
  2. Empty set (0.00 sec)
  3.  
  4. mysql> select count(*),avg(id),sum(id),max(id),min(id) from test1_5;
  5. +----------+---------+---------+---------+---------+
  6. | count(*) | avg(id) | sum(id) | max(id) | min(id) |
  7. +----------+---------+---------+---------+---------+
  8. | 0 | NULL | NULL | NULL | NULL |
  9. +----------+---------+---------+---------+---------+
  10. 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. KMP算法中next数组的理解与算法的实现(java语言)

    KMP 算法我们有写好的函数帮我们计算 Next 数组的值和 Nextval 数组的值,但是如果是考试,那就只能自己来手算这两个数组了,这里分享一下我的计算方法吧. 计算前缀 Next[i] 的值: ...

  2. tcp/ip通信中tcp头部结构tcphdrp->check校验计算

    通过raw socket修改通信数据后,可通过函数 set_tcp_checksum1(iph); 重新校验计算iph->check值 在http://www.cnblogs.com/dpf-1 ...

  3. Linux编辑启动停止重启springboot jar包脚本

    springboot的配置文件中,配置文件的名字都有各自的意义跟用途 dev 开发环境 prod 生产环境(默认) test 测试环境 加载指定配置文件 --spring.profiles.activ ...

  4. GCD之后台程序运行

    点击Home键进入后台时进行计时,直到从新启动,超过三分钟启动手势 // // AppDelegate.m // GCDDown // // Created by City--Online on 15 ...

  5. JVM 综述

    概览 从 JVM 的总体上看,它解决了3个问题: Java 程序的内存管理(GC & 运行时数据区). Java Class 二进制字节流的加载(ClassLoader). Java 程序的执 ...

  6. C# 全文搜索Lucene

    全文出自:https://blog.csdn.net/huangwenhua5000/article/details/9341751 1 lucene简介1.1 什么是luceneLucene是一个全 ...

  7. 全局唯一订单号生成方法(参考snowflake)

    backgroud Snowflake is a network service for generating unique ID numbers at high scale with some si ...

  8. 杀人游戏(hdu2211)插入法

    杀人游戏 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  9. js中的json的小例子

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...

  10. 初学HTML-3

    标题标签:<h#>...</h#>,从h1到h6,字号由大变小. 段落标签:<p>...</p>,在浏览器中独占一行. 空格:" " ...