MySQL-聚合函数

本文介绍了SQL中的聚合函数,如AVG、COUNT、MAX、MIN和SUM,它们用于处理分组数据的统计分析。还讨论了如何处理NULL值和使用DISTINCT关键字。通过实例展示了如何在实际场景中运用这些函数进行数据汇总和计数。
摘要由CSDN通过智能技术生成

聚合函数


聚合函数介绍

聚合函数也称之为多行函数,组函数或分组函数。聚合函数不象单行函数,聚合函数对行的分组进行操作,对每组给出一个结果。如果在查询中没有指定分组,那么聚合函数则将查询到的结果集视为一组。

聚合函数类型

  • AVG平均值
  • COUNT 计数
  • MAX 最大值
  • MIN 最小值
  • SUM 合计

聚合函数说明:

函数名描述实例
AVG(expression)返回一个表达式的平均
值,expression 是一个
字段返回 Products 表中Price 字段的平均值: SELECT
AVG(Price) AS AveragePrice FROM Products;
COUNT(expression)返回查询的记录总数,
expression 参数是一个
字段或者 * 号返回查询的记录总数,
expression 参数是一个
字段或者 * 号
MAX(expression)返回字段 expression 中
的最大值
返回数据表 Products 中字段 Price 的最大值:
SELECT MAX(Price) AS LargestPrice FROM Products;
MIN(expression)返回字段 expression 中
的最小值
返回数据表 Products 中字段 Price 的最小值:
SELECT MIN(Price) AS MinPrice FROM Products;
SUM(expression)返回指定字段的总和计算 OrderDetails 表中字段 Quantity 的总和:
SELECT SUM(Quantity) AS TotalItemsOrdered FROM
OrderDetails;

聚合函数使用方式

聚合函数的语法

SELECT	[column,]	group	function(column), ......
FROM	table
[WHERE	condition]
[GROUP	BY	column]
[ORDER	BY	column];

使用聚合函数的原则

  • DISTINCT 使得函数只考虑不重复的值;
  • 所有聚合函数忽略空值。为了用一个值代替空值,用 IFNULL 或 COALESCE 函数。

AVG 和 SUM 函数

AVG(arg)函数

对分组数据做平均值运算。

arg:参数类型只能是数字类型。

SUM(arg)函数

对分组数据求和。

arg:参数类型只能是数字类型。

示例:

计算员工表中工作编号含有REP的工作岗位的平均薪水与薪水总和。

SELECT AVG(salary),SUM(salary)
FROM employees
WHERE job_id LIKE '%REP%';

在这里插入图片描述

MIN 和 MAX 函数

MIN(arg)函数

求分组中最小数据。

arg:参数类型可以是字符、数字、 日期。

MAX(arg)函数

求分组中最大数据。

arg:参数类型可以是字符、数字、 日期。

示例:

查询员工表中入职时间最短与最长的员工,并显示他们的入职时间。

SELECT MIN(hire_date), MAX(hire_date) 
FROM employees;

COUNT 函数

返回分组中的总行数。

COUNT 函数有三种格式:

  • COUNT(*):返回表中满足 SELECT 语句的所有列的行数,包括重复行,包括有空值列的行。
  • COUNT(expr):返回在列中的由 expr 指定的非空值的数。
  • COUNT(DISTINCT expr):返回在列中的由 expr 指定的唯一的非空值的数。

使用 DISTINCT 关键字

  • COUNT(DISTINCT expr) 返回对于表达式 expr 非空并且值不相同的行数
  • 显示 EMPLOYEES 表中不同部门数的值

示例一:

显示员工表中部门编号是80中有佣金的雇员人数。

SELECT COUNT(commission_pct) 
FROM employees
WHERE department_id = 80;

在这里插入图片描述

示例二:

显示员工表中的部门数。

SELECT COUNT(DISTINCT department_id) 
FROM employees;

在这里插入图片描述

组函数和 Null 值

在组函数中使用 IFNULL 函数

SELECT AVG(IFNULL(commission_pct, 0)) 
FROM employees;

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

途中刂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值