【MySQL必知必会(九)】【汇总数据】

上一篇:【MySQL必知必会(八)】【使用数据处理函数】

+++++++++++++开始线++++++++++++++++

一、 聚集函数

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

1.1 AVG()函数

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

mysql> SELECT AVG(prod_price) AS avg_price
    -> FROM products;

在这里插入图片描述

AVG()还可以用来确定特定列或行的平均值

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

在这里插入图片描述

只用于单个列

AVG()只能用来确定特定数值列的平均值,而且列名必须作为函数参数给出。为了获得多个列的平均值,必须使用多个AVG()函数。

NULL值

AVG()函数忽略列值为NULL的行

1.2 COUNT()函数

COUNT()函数进行计数

返回customers表中客户的总数

mysql> SELECT COUNT(*) AS num_cust
    -> FROM customers;

在这里插入图片描述

对具有电子邮件地址的客户计数

mysql> SELECT COUNT(cust_email) AS num_cust
    -> FROM customers;

在这里插入图片描述

NULL值

如果指定列名,则指定列的值为空的行被COUNT()函数忽略,但如果COUNT()函数中用的是星号(*),则不忽略

1.3 MAX()函数

mysql> SELECT MAX(prod_price) AS max_price
    -> FROM products;

在这里插入图片描述

对非数值数据使用MAX()

虽然MAX()一般用来找出最大的数值或日期值,但MySQL允许将它用来返回任意列中的最大值,包括返回文本列中的最大值。在用于文本数据时,如果数据按相应的列排序,则MAX()返回最后一行

NULL值

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

1.4 MIN()函数

mysql> SELECT MIN(prod_price) AS min_price
    -> FROM products;

在这里插入图片描述

对非数值数据使用MIN()

MySQL允许将它用来返回任意列中的最小值,包括返回文本列中的最小值。在用于文本数据时,如果数据按相应的列排序,则MIN()返回最前面的行

NULL值

MIN()函数忽略列值为NULL的行

1.5 SUM()函数

mysql> SELECT SUM(quantity) AS items_ordered
    -> FROM orderitems
    -> WHERE order_num = 20005;

在这里插入图片描述

SUM也可以用来合计计算值

mysql> SELECT SUM(item_price*quantity) AS total_price
    -> FROM orderitems
    -> WHERE order_num = 20005;

在这里插入图片描述

在多个列上进行计算

利用标准的算数操作符,所有聚集哈桑农户都可用来执行多个列上的计算

NULL值
SUM()函数忽略列值为NULL的行

二、 聚集不同值

ALL为默认

ALL参数不需要指定,因为它是默认行为。如果不指定DISTINCT,则假定为ALL

使用AVG()函数返回特定供应商提供的产品的平均价格

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

在这里插入图片描述

注意

DISTINCT必须使用列名,不能用于计算或表达式

三、 组合聚集函数

mysql> 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;

在这里插入图片描述

+++++++++++++结束线++++++++++++++++

猜你喜欢

转载自blog.csdn.net/qq_42893334/article/details/108783130