MySQL必知必会——第12章 汇总数据

如何利用聚集函数汇总表的数据

聚集函数 使用场景:我们经常需要汇总数据而不用把它们实际检索出来
聚集函数有哪些:AVG(),COUNT(),MAX(),MIN(),SUM()
使用举例:
AVG()函数

SELECT AVG(prod_price) AS avg_price
FROM products;

在这里插入图片描述
以上例子是返回products表中所有产品的平均价格,也可以求特定产品的平均值

SELECT AVG(prod_price) AS avg_price
FROM products
WHERE vend_id=1003;

在这里插入图片描述
AVG()函数只能用于单个列,为了获得多个列的平均值,必须使用多个AVG()函数
AVG()忽略列值为NULL的行
COUNT()函数
COUNT(*)不忽略空值,COUNT(column)忽略空值

SELECT COUNT(*) AS num_cast
FROM customers;

在这里插入图片描述
以上例子对所有行计数,即使某一行的取值是空值
如果要在计数时忽略空值,使用COUNT(column)的形式

SELECT COUNT(cust_email) AS num_cust
FROM customers;

在这里插入图片描述
以上例子只统计了具有电子邮件地址的客户数
MAX() & MIN()函数

SELECT MAX(prod_price) AS max_price
FROM products;

以上语句返回products表中最贵的物品的价格
MAX()函数忽略列值为空的行
MIN()函数的用法和MAX()函数完全一致
SUM ()函数

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()函数忽略列值为空的行

在使用聚集函数时,对所有行执行计算,指定ALL值或不给参数(默认对所有行执行计算)
在使用聚集函数时,只对不同的值执行计算,指定DISTINC参数

SELECT AVG(DISTINCT prod_price) AS avg_price
FROM products
WHERE vend_id=1003;

上述例子只计算不同价格的平均值

一个SELECT语句可以包含多个聚集函数

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;

在这里插入图片描述
聚集函数是高效设计的,其返回的结果比你在自己的客户机应用程序中计算要快的多

发布了90 篇原创文章 · 获赞 8 · 访问量 8247

猜你喜欢

转载自blog.csdn.net/weixin_43854189/article/details/102819251
今日推荐