MySQL:avg()、count()、max()、min()、sum()函数的使用

文章目录

  • 概述
  • AVG() 函数
  • COUNT()函数
  • MAX() 函数
  • MIN()函数
  • SUM()函数
  • 聚合不同值
  • 组合函数

概述

我们经常需要汇总数据而不是把它们实际检索出来,常用场景有以下几种:
①确定表中的行数(或满足某种条件或包含某个特定值的行数)
②获得表中行组的总和。
③找出表列的最大值、最小值和平均值。

函数 说明
AVG() 返回某列的平均值
COUNT() 返回某列的行数
MAX() 返回某列的最大值
MIN() 返回列的最小值
SUM() 返回某列值之和

AVG() 函数

AVG()函数通过对表中行数的计数并计算特定列值之和,求得该列的平均值,可以返回该列所有数的平均值,也可以返回特定列或行的平均值。

SELECT AVG(prod_price) 	AS avg_price FROM products

说明:avg_price是一个别名,返回列prod_price的平均值。

select avg(prod_price) as avg_price from products where vend_id=1003

说明:求vend_id=1003列的平均值。
avg函数忽略列值为null的行。

COUNT()函数

count()函数返回表中行的数目或者符合特定条件行的数目。
两种用法:
①count(*) 对表中行的数目进行统计,不管表中是否包含空值(null)。
②使用count(column) 来进行统计,不包含null值。

select count(*) as num_cust from customers;

说明:该条语句对表中所有记录进行计数,无论表中是否包含空值。

select count(cust_email) as num_cust from customer;

说明:对cust_email有值的行进行计数,忽略null的行。

MAX() 函数

max() 返回指定列表的最大值,max()要求指定列名。

select max(prod_price) as max_price from products;

说明:max()返回products表中最贵的物品的价格。忽略null值。

MIN()函数

select min(prod_price) as min_price from product;

说明:min()返回products表中最便宜的物品的价格。忽略null。

SUM()函数

sum()用来返回指定列值的和(总计)

select sum(quantity) as items_ordered from orderitems where order_num=20005;

也可以合计:计算总订单金额。忽略null值。

select sum(item_price * quantity) as total_price from orderitems where order_num=20005;

聚合不同值

对AVG()、COUNT()函数指定不同的值:distinct.

select avg(distinct prod_price) as avg_price from products where vend_id=1003;

求列prod_price不同值的平均值。
对于count()函数。需要在指定列的时候才能使用distinct,而不能在count(*)上使用。

组合函数

以上的函数可以组合使用:

select count(*) as num_items,min(prod_price) as min_price, max(prod_price) as max_price, avg(prod_price) as price_avg from products;

我不生产知识,我只是知识的搬运工。
参考:MySQL必知必会。

你可能感兴趣的:(mysql)