MySQL汇总数据(21)

121 阅读2分钟

「这是我参与11月更文挑战的第21天,活动详情查看:2021最后一次更文挑战

AVG()函数

AVG()通过对表中行数计数并计算特定列值之和,求得该列的平均值。AVG()可用来返回所有列的平均值,也可以用来返回特定列或行的平均值。下面的例子使用AVG()返回products表中所有产品的平均价格:

select avg(p_price) as avg_price from products;

输出如下:

image.png

AVG()也可以用来确定特定列或行的平均值。下面的例子返回特定供应商所提供产品的平均价格:

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

输出

image.png

COUNT()函数

COUNT()函数有两种使用方式。

1.对表中行的数目进行计数

2.对特定列中具有值的行进行计数

下面的例子返回customers表中客户的总数:

select count(*) as num_cust from customers;

输出如下:

image.png

利用COUNT(*)对所有行计数,不管行中各列有什么值。计数值在num_cust中返回。

MAX()函数

MAX()返回指定列中的最大值。MAX()要求指定列名,如下所示:

select max(p_price) as max_price
from products

输出如下:

image.png

MAX()返回products表中最贵的物品的价格。

MIN()函数

MIN()的功能正好与MAX()功能相反,它返回指定列的最小值。与MAX()一样,MIN()要求指定列名,如下所示

select min(p_price) as min_price
from products;

输出如下:

image.png

SUM()函数

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

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

输出如下:

image.png

函数SUM(quantity)返回订单中所有物品数量之和,WHERE子句保证只统计某个物品订单中的物品。

distinct函数

去除重复值,使用AVG()函数返回特定供应商提供的产品的平均价格。它与上面的SELECT语句相同,但使用了DISTINCT参数,因此平均值只考虑各个不同的价格:

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

输出如下:

image.png

可以看到,在使用了DISTINCT后,此例子中的avg_price比较高,因为有多个物品具有相同的较低价格。排除它们提升了平均价格。