MySQL学习专栏 正在持续更新中:)

文章目录

  • 总表 统计函数
  • NULL是否影响SUM AVG的计算?
  • MAX MIN 用在日期时间上会怎么样
  • 这些函数用在字符串上会怎么样
  • 结合上节文章案例 统计一波
  • DISTINCT 关键字的应用
  • COUNT 花式应用
  • 预告

总表 统计函数

名称 英文 中文 返回值
COUNT() count 计数 统计指定列不为NULL的记录行数
MAX() maxium 最大值 计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算
MIN() minium 最小值 计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算
SUM() summary 求和 计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0
AVG() average 平均值 计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0

NULL是否影响SUM AVG的计算?

不影响,SUM AVG内部实现了COUNT的功能。

MAX MIN 用在日期时间上会怎么样

会将时间离得更近的认为更大(因为数值大)

这些函数用在字符串上会怎么样

除了COUNT(),当然一般是不推荐的。
硬要说的话,
SUM AVG得凉,硬要放进去 就会返回没有意义的值如 0。
MIN MAX 会采用字符串排序 (STRCMP())

结合上节文章案例 统计一波

上期文章传送门:数据库学习之MySQL (十)—— 日期和时间函数 流程控制函数

上面表格的数据,统计后的结果如下:

USE data1;
SELECT MAX(`hiredate`) 最近入职时间,MIN(`hiredate`) 最老入职时间,SUM(`salary`) 最终工资总数,AVG(`salary`) 最终工资总数平均,CASEWHEN YEAR(`hiredate`) < 1996 THEN `salary` * (1+0.6+IFNULL(`commission_pct`, 0)) WHEN YEAR(`hiredate`) BETWEEN 1997 AND 2000 THEN `salary` * (1+0.4+IFNULL(`commission_pct`, 0)) WHEN YEAR(`hiredate`) BETWEEN 2001 AND 2010 THEN `salary` * (1+0.2+IFNULL(`commission_pct`, 0))WHEN YEAR(`hiredate`) BETWEEN 2011 AND 2014 THEN `salary` * (1+0.1+IFNULL(`commission_pct`, 0))ELSE `salary` * (1+0.0+IFNULL(`commission_pct`, 0))END AS 最终工资
FROMemployees
ORDER BY 最终工资 DESC ;

DISTINCT 关键字的应用

案例 我们想知道奖金率有多少种,而且具体每种的值是什么?
第一要去NULL 第二 去重 第三 最好来个降序排序查询

SELECTDISTINCT IFNULL(`commission_pct`, 0) 奖金率种类
FROM employees
ORDER BY 奖金率种类 DESC;SELECTCOUNT(DISTINCT `commission_pct`) 奖金率种数
FROM employees;

COUNT 花式应用

最主要的就是用来统计类的实例数量(有多少行),当然要求你实例的属性(列对应得值)至少得有个不为NULL(全是NULL 实例不存在了)
于是我们可以这么写
SELECT COUNT(*) FROM employees;
这种写法无论是MySQL 5.5之前的存储引擎MYISAM 还是5.5之后的INNODB 都是最快、效率最高的统计行数办法。
当然你也可以这么写:
SELECT COUNT('杰伦') FROM employees;
或者
SELECT COUNT(1234) FROM employees;
结果相同,它实现原理是每一行都多一个属性,叫1234 或者 ‘杰伦’ (你自定义的),然后统计有多少个1234或者’杰伦’ 达到一样的行数统计效果。

预告

其实单纯的统计函数意义不大——我们不太可能针对一张张表来统计
经常是对id = 1,2,3…的所有情况统计
这时 我们就需要分组 GROUP BY

下一站:数据库学习之MySQL (十二)—— 分组查询 GROUP BY + HAVING

  • 本文专栏
    MySQL专栏
  • 我的其他专栏 希望能够帮到你 ( •̀ ω •́ )✧
    • 手把手带你学后端(服务端)
    • python这么火 想要深入学习python 玩一下简单的应用嘛?
      python应用
  • 谢谢大佬支持! 萌新有礼了:)

数据库学习之MySQL (十一)—— 统计函数 COUNT MIN MAX AVG SUM相关推荐

  1. mysql now str,数据库学习之MySQL (十)—— 日期和时间函数 NOW STR_TO_DATE DATE_FORMAT 流程控制函数 IF IFNULL CASE...

    MySQL学习专栏 正在持续更新中:) 文章目录 日期和时间函数 NOW STR_TO_DATE DATE_FORMAT 流程控制函数 IF IFNULL CASE 下章预告 日期和时间函数 NOW ...

  2. MySQL——统计函数count,合计函数sum,(avg,max,min)函数

    目录 1.统计函数- count 2.合计函数-sum 3.-演示(avg,max,min)函数的使用 1.统计函数- count Count 返回行的总数 Select count( * ) I c ...

  3. 数据库学习之MySQL (十七)—— SQL99 主查询 与 子查询 子查询分类之WHERE的子查询

    文章目录 主查询 子查询 纲举目张--子查询的分类 WHERE语句后的 子查询 主查询 子查询 概念集中于SELECT语句 之前我们所学习的所有,都是SELECT作为独立的一句 是主干,是爸爸 后面跟 ...

  4. linq学习笔记(5):Count/Sum/Min/Max/Avg

    Count/Sum/Min/Max/Avg用于统计数据,比如统计一些数据的个数,求和,最小值,最大值,平均数. 1.Count:返回集合中的元素个数,返回INT类型:不延迟.生成SQL语句为:SELE ...

  5. 数据库学习之MySQL (九)—— 数学函数 字符串函数 CONCAT TRIM PAD

    MySQL学习专栏 正在持续更新中:) 文章目录 复习一下 前面学到的函数 LENGTH CONCAT 数学函数 ABS CEIL FLOOR ROUND POW 常用字符串函数 SUBSTR REP ...

  6. 数据库学习之MySQL (三)——数据库小试牛刀 + 利用对象思维理解表行列

    文章目录 前言 ´・ᴗ・` 获得自己第一个数据库 执行代码 小试牛刀 简单语句的实验方法 表 的理解 总结 ´◡` 前言 ´・ᴗ・` 本文我们将通过运行sql代码 得到自己的第一个数据库 我们学习的重 ...

  7. 数据库学习之MySQL (十六)—— SQL99 外连接 左外连接 右外连接 全外连接 交叉连接

    文章目录 外连接 之 左外连接 与 右外连接 为啥要用外连接 全外连接 总结 内连接 外连接 交叉连接 外连接 之 左外连接 与 右外连接 我们先来看个之前的 女神男朋友的案例 传送:数据库学习之My ...

  8. Linq-语句之Select/Distinct和Count/Sum/Min/Max/Avg

    上一篇讲述了LINQ,顺便说了一下Where操作,这篇开始我们继续说LINQ to SQL语句,目的让大家从语句的角度了解LINQ,LINQ包括LINQ to Objects.LINQ to Data ...

  9. LINQ to SQL语句之 Count/Sum/Min/Max/Avg

    Count/Sum/Min/Max/Avg操作符 适用场景:统计数据吧,比如统计一些数据的个数,求和,最小值,最大值,平均数. Count 说明:返回集合中的元素个数,返回INT类型:不延迟.生成SQ ...

  10. LINQ to SQL语句之Select/Distinct和Count/Sum/Min/Max/Avg - YJingLee's Blog - 博客园(转)

    Select/Distinct操作符 适用场景:o(∩_∩)o- 查询呗. 说明:和SQL命令中的select作用相似但位置不同,查询表达式中的select及所接子句是放在表达式最后并把子句中的变量也 ...

最新文章

  1. 那些离开大厂,回归学术界的科学家们!
  2. fastclick库的介绍和使用
  3. 实现 tomcat 热加载证书
  4. Delphi 的信息框相关函数
  5. JwPlayer播放器【去除Logo、去除版本信息】
  6. @程序员,技术债你还清了吗?
  7. CenOS_6.6_简单搭建vsFTP
  8. 怎么在Android布局里面写下拉框,Android CoordinatorLayout(六) 加入下拉功能
  9. 用户、话题、评论一网打尽,分享一个最强微博爬虫
  10. Python 文本挖掘:使用gensim进行文本相似度计算
  11. 在XP+SP2下隐藏模态窗口的状态栏
  12. 自适应Simpson法P4525 【模板】自适应辛普森法1
  13. 小总结:git的使用
  14. kubernetes资源管理平台ratel
  15. HUAWEI nova 青春版“大尺度”内存,手机再满都不怕
  16. 你要的所有数据源都在这里了!
  17. 笔记本上的 Ctrl 键突然无法使用
  18. 学会做笔记-子弹笔记学习概要三
  19. iPhone 11忘记了密码怎么办?
  20. 一个 iPod touch 用户的魅族 M8 使用体验

热门文章

  1. 制作CAB包以及文件签名
  2. jQuery 事件冒泡
  3. python代码 将文件夹下的.png图片转换为.mat图片 批量转换为mat
  4. 追星女孩彩虹屁情话合集100条 ✔︎ (三)
  5. lopatkin俄大神精简中文系统 Windows 10 Pro 10240.16393.150717-1719.th1_st1 x86-x64 CN Tablet PC FINAL...
  6. bh1750采集流程图_多路BH1750光强检测系统的设计
  7. 层次分析法在matlab上的实现
  8. 神马搜索广告怎么投放?神马广告投放产品介绍!
  9. 08-【go】go语言中的*和的使用方法
  10. Python——顺序结构