MySQL学习笔记十

第十二章汇总数据

12.1聚集函数

聚集函数运行在行组上,计算和返回单个值。

12.1.1AVG()函数

输入:

复制代码
SELECT AVG(prod_price) AS avg_price
FROM products;

输出:

说明:AVG()函数通过对表中行数计数并计算特定列值之和,求得该列的平均值。

输入:

复制代码
SELECT AVG(prod_price) AS avg_price
FROM products
WHERE vend_id = 1003;

输出:

说明:返回特定行的平均值。AVG()函数只能用来确定特定列的平均值,而且列名必须作为函数参数给出,获得多个列的平均值必须使用多个AVG()函数,且直接忽略列值为NULL的行。

12.1.2COUNT()函数

输入:

复制代码
SELECT COUNT(*) AS num_cust
FROM customers;

输出:

说明:1.COUNT()函数确定表中行数或符合特定条件的行的数目。

2.使用COUNT(*)对表中行的数目进行计数,不管表列中包含的是空值还是NULL值。

3.使用COUNT(COLUMN)对特定列中具有值的行进行计数,忽略NULL值。

输入:

复制代码
SELECT COUNT(cust_email) AS num_cust
FROM customers;

输出:

12.1.3MAX()函数

输入:

复制代码
SELECT MAX(prod_price) AS max_price
FROM products;

输出:

说明:1.MAX()函数返回指定列中的最大值,也可以返回文本列中的最大值。在用于文本数据时,如果数据按相应的列排序,则MAX()返回最后一行。

2.MAX()函数忽略列值为NULL的行。

12.1.4MIN()函数

输入:

复制代码
SELECT MIN(prod_price) AS min_price
FROM products;

输出:

说明:MIN()函数返回指定列中的最小值。在用于文本数据时,如果数据按相应的列排序,则MIN()返回最前面的行。

12.1.5SUM()函数

输入:

复制代码
SELECT SUM(quantity) AS items_ordered
FROM orderitems
WHERE order_num = 20005;

输出:

说明:SUM()函数用来返回指定列值的和。

输入:

复制代码
SELECT SUM(item_price*quantity) AS total_price
FROM orderitems
WHERE order_num = 20005;

输出:

说明:SUM()函数也可以用来合计计算值,且在计算时忽略列值为NULL的行。

12.2聚集不同值

输入:

复制代码
SELECT AVG(DISTINCT prod_price) AS avg_price
FROM products
WHERE vend_id = 1003;

输出:

说明:1.ALL参数或者不加参数是对所有行进行计算。DISTINCT参数只包含不同的值。

2.DISTINCT只能用于COUNT(),不能用于COUNT(*),DISTINCT必须使用列名,不能用于计算或表达式。

3.DISTINCT用于MAX()和MIN()并没有实际的价值。

12.3组合聚集函数

输入:

复制代码
SELECT COUNT(*) AS num_items,
			 MIN(prod_price) AS price_min,
			 MAX(prod_price) AS price_max,
			 AVG(prod_price) AS price_avg
FROM products;

输出:

说明:SELECT语句中可以包含有多个聚集函数。

相关推荐
落羽的落羽4 分钟前
【C++】论如何封装红黑树模拟实现set和map
数据结构·c++·学习
Olrookie1 小时前
若依前后端分离版学习笔记(一)——本地部署
笔记·后端·开源
PerfumerKarma1 小时前
【WebGPU学习杂记】数学基础拾遗(2)变换矩阵中的齐次坐标推导与几何理解
学习·线性代数·矩阵
knight_20242 小时前
嵌入式学习日志————对射式红外传感器计次
stm32·单片机·嵌入式硬件·学习
go54631584652 小时前
基于分组规则的Excel数据分组优化系统设计与实现
人工智能·学习·生成对抗网络·数学建模·语音识别
##echo2 小时前
嵌入式Linux裸机开发笔记9(IMX6ULL)GPIO 中断实验(1)
linux·c语言·笔记·单片机·嵌入式硬件
●VON2 小时前
重生之我在暑假学习微服务第二天《MybatisPlus-下篇》
java·学习·微服务·架构·mybatis-plus
Yu_Lijing3 小时前
MySQL进阶学习与初阶复习第四天
数据库·学习·mysql
好学且牛逼的马4 小时前
学习随笔录
学习
我爱学嵌入式5 小时前
C语言第 9 天学习笔记:数组(二维数组与字符数组)
c语言·笔记·学习