聚合函数:作用域一组数据,并对一组数据返回一个值
常用聚合函数:AVG(),SUM(),MAX(),MIN(),COUNT(),

SELECT AVG(salary), MAX(salary),MIN(salary), SUM(salary)
FROM employees
WHERE job_id LIKE ‘%REP%’;

常用count(*)统计行数。不可用count(列名)替换

可以使用GROUP BY子句将表中的数据分成若干组
SELECT department_id dept_id, job_id, SUM(salary)
FROM employees
GROUP BY department_id, job_id ;

使用 WITH ROLLUP 关键字之后,在所有查询出的分组记录之后增加一条记录,该记录计算查询出的所
有记录的总和,即统计记录数量。(rollup和orderby 相互排斥)
SELECT department_id,AVG(salary)
FROM employees
WHERE department_id > 80
GROUP BY department_id WITH ROLLUP;

过滤分组:HAVING子句

  1. 行已经被分组。
  2. 使用了聚合函数。
  3. 满足HAVING 子句中条件的分组将被显示。
  4. HAVING 不能单独使用,必须要跟 GROUP BY 一起使用。
    SELECT department_id, MAX(salary)
    FROM employees
    GROUP BY department_id
    HAVING MAX(salary)>10000 ;

where和having区别:
1having必须和groupby配合使用
2where效率高,但不能有聚合函数

标准查询结构:
#方式1:
SELECT …,…,…
FROM …,…,…
WHERE 多表的连接条件
AND 不包含组函数的过滤条件
GROUP BY …,…
HAVING 包含组函数的过滤条件
ORDER BY … ASC/DESC
LIMIT …,…

#方式2:
SELECT …,…,…
FROM … JOIN …
ON 多表的连接条件
JOIN …
ON …
WHERE 不包含组函数的过滤条件
AND/OR 不包含组函数的过滤条件
GROUP BY …,…
HAVING 包含组函数的过滤条件
ORDER BY … ASC/DESC
LIMIT …,…

#其中:
#(1)from:从哪些表中筛选
#(2)on:关联多表查询时,去除笛卡尔积
#(3)where:从表中筛选的条件
#(4)group by:分组依据
#(5)having:在统计结果中再次筛选
#(6)order by:排序
#(7)limit:分页

关键字的顺序是不能颠倒的:select from where group by having,order by,limit

练习:
#1.where子句可否使用组函数进行过滤?
不可以

#2.查询公司员工工资的最大值,最小值,平均值,总和
SELECT MAX(salary), MIN(salary), AVG(salary), SUM(salary)
FROM employees;

#3.查询各job_id的员工工资的最大值,最小值,平均值,总和
SELECT job_id, MAX(salary), MIN(salary), AVG(salary), SUM(salary)
FROM employees
GROUP BY job_id;

#4.选择具有各个job_id的员工人数
SELECT job_id, COUNT(*)
FROM employees
GROUP BY job_id;

5.查询员工最高工资和最低工资的差距(DIFFERENCE)
SELECT MAX(salary), MIN(salary), MAX(salary) - MIN(salary) DIFFERENCE
FROM employees;

6.查询各个管理者手下员工的最低工资,其中最低工资不能低于6000,没
有管理者的员工不计算在内
SELECT manager_id, MIN(salary)
FROM employees
WHERE manager_id IS NOT NULL
GROUP BY manager_id
HAVING MIN(salary) > 6000;

7.查询所有部门的名字,location_id,员工数量和平均工资,并按平均工
资降序
SELECT department_name, location_id, COUNT(employee_id), AVG(salary) avg_sal
FROM employees e RIGHT JOIN departments d
ON e.department_id = d.department_id
GROUP BY department_name, location_id
ORDER BY avg_sal DESC;

8.查询每个工种、每个部门的部门名、工种名和最低工资
SELECT department_name,job_id,MIN(salary)
FROM departments d LEFT JOIN employees e
ON e.department_id = d.department_id
GROUP BY department_name,job_id;

MySQL(六)聚合函数相关推荐

  1. mysql的聚合函数文档_MySQL聚合函数

    MySQL聚合函数 MySQL的聚合函数用于对多个值执行计算,并将结果返回为单个值,如所有值的平均值,所有值的总和以及某些值组中的最大值和最小值.我们通常将聚合函数与数据查询语言中的SELECT语句一 ...

  2. mysql的聚合函数综合案例_MySQL常用聚合函数详解

    一.AVG AVG(col) 返回指定列的平均值 二.COUNT COUNT(col) 返回指定列中非NULL值的个数 三.MIN/MAX MIN(col):返回指定列的最小值 MAX(col):返回 ...

  3. MYSQL字符串聚合函数

    MYSQL字符串聚合函数学习笔记 mysql中可存储多种数据类型,varchar(字符串)则是其中一种最常见的类型.在对字符串类型进行读取时,我们有时候需要对取出的原始数据进行操作,这个操作在程序里很 ...

  4. 【MySQL】聚合函数

    一.五大常用聚合函数 SUM():求总和,只适用于数值类型字段,如果是字符串类型不会报错会返回0,会自动过滤空值 AVG():求平均值,只适用于数值类型字段,字符串类型不会报错会返回0,会自动过滤空值 ...

  5. mysql 聚合函数求乘积_手把手教你mysql(五)聚合函数

    手把手教你mysql(五)聚合函数 一: 聚合函数 1.1.COUNT()函数 1. COUNT()函数用来统计记录的条数: 2. 与GOUPE BY 关键字一起使用: 我这边仍然使用的是t_stud ...

  6. MySQL常见聚合函数

    MySQL常见函数 MySQL常见聚合函数 建表准备 一.AVG 二.COUNT 三.MAX 四.MIN 五.SUM 总结 MySQL常见聚合函数 建表准备 CREATE TABLE `student ...

  7. mysql相关聚合函数应用商品分类表

    多表查询 一.多表之间建表关系分析 ​ 一对多:商品和分类 ​ 一对一:人和身份证(比较少) ​ 多对多:课程和学生 ​ 拆分成2个1对多的关系,建立一个中间表,让中间表的两个外键分别去指向两张表的主 ...

  8. Jdbc访问mysql查询聚合函数_JDBC连接参数设置对Oracle数据库的影响分析

    一次数据库性能问题处理引发的JDBC参数设置思考 近期某环境下系统,出现大面积页面访问缓慢情况,每个页面交易响应时间2-5秒,严重超过平日访问阈值. 经排查分析,问题主要出现在数据库,生成AWR得到3 ...

  9. MySQL中聚合函数count的使用和性能优化

    本文将探讨以下问题 1.count(*) . count(n).count(null)与count(fieldName) 2.distinct 与 count 连用 3.group by (多个字段) ...

  10. 【MySQL】聚合函数详解

    聚合函数 SQL 函数还有一类,叫做聚合(或聚集.分组)函数,它是对一组数据进行汇总的函数,输入的是一组数据的集合,输出的是单个值. 1.聚合函数介绍 什么是聚合函数: 聚合函数作用于一组数据,并对一 ...

最新文章

  1. 【工具篇】利用DBExportDoc V1.0 For MySQL自动生成数据库表结构文档(转
  2. 另一个小程序 返回的支付结果如何得到_手把手教你测微信小程序
  3. 【HDOJ图论题集】【转】
  4. 【Python】学习笔记总结4(Python模块)
  5. python(26)查看文件的大小
  6. 计算最后一个单词的字符串长度
  7. oracle整张表转置,从Oracle表格行列转置说起...
  8. 【COGS2652】—天文密葬法(分数规划+长链剖分)
  9. Jenkins 文档特别兴趣小组
  10. 计算机中什么是以二进制表示的信息,计算机计算各种信息-为什么计算机中的所有信息都以二进制方式表示 – 手机爱问...
  11. python datetime格式_python time和datetime常用写法格式
  12. Symfony2Book16:Symfony2内部03-事件调度
  13. 看mysql手册中模式(SQL_MODE)学到的知识
  14. C# 添加水印图片、文字、缩略图处理
  15. scp 命令简明介绍
  16. 高大上:光学技术“回归”地球整出“彩虹车站”
  17. YGG Founders‘ Coin 独家福利:Laura Shin 的“The Cryptopians”书本赠送
  18. DB2 HADR TSA安装
  19. c++动态库调试中的脑壳疼
  20. 关于EFI系统分区(ESP)你应该知道的3件事

热门文章

  1. python生成pyc文件可以互用吗_Python生成pyc文件
  2. OCXO、VCXO、TCXO、MCXO、VC-OCXO和VC-TCXO分别有什么特点?
  3. Python 内置优先队列PriorityQueue 代码解析
  4. MySQL 字符串截取函数,字段截取,字符串截取
  5. .NET企业级应用架构设计(2nd).pdf
  6. SaaS化大潮,移动CRM带来的机遇和挑战!
  7. Mac 系统占用100G+解决办法(详细步骤
  8. 数据结构(Java)---链表
  9. 【Python正则表达式】网址合法性检测
  10. Node.js实现登录注册