【MySQL】汇总数据

目录

一、聚集函数

1.AVG()参数

2.COUNT()函数

3.MAX()函数

4.MIN()函数

5.SUM()函数

二、聚集不同值

三、组合聚集函数


一、聚集函数

聚集函数:运行在行组上,计算和返回单个值的函数,用来汇总数据

                                                    SQL聚集函数

AVG() 返回某列的平均值
COUNT() 返回某列的行数
MAX() 返回某列的最大值
MIN()

返回某列的最小值

SUM() 返回某列值之和

1.AVG()参数

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

示例:在表t_goods中算出price的平均值放在avg_price列中,avg_price是一个别名

输入: select AVG(price)

           as avg_price

           from t_goods;

输出:

【MySQL】汇总数据_第1张图片

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

示例:包含where子句,约束vend_id = 2的产品

输入:select AVG(prod_price)

           as avg_price

           from products

           where vend_id = 2;

输出:

【MySQL】汇总数据_第2张图片

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

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

2.COUNT()函数

COUNT()函数进行计数。确定表中行的数目或符合特定条件的行的数目

COUNT()函数的两种表示方式:

  • 使用COUNT(*)对表中行的数目进行计数,不管表列中包含的时空值
  • 使用COUNT(column)对特定列中具有值的行进行计数,忽略NULL值。

示例:根据name计算t_user表中的人员总数

输入:select COUNT(*)

           as name

           from t_user;

输出:

【MySQL】汇总数据_第3张图片

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

3.MAX()函数

MAX()函数返回指定列中的最大值。MAX()要求指出列名。

示例:在表t_goods中找到price列的最大值

输入:select MAX(price) 

           as MAX_price

           from t_goods;

输出:【MySQL】汇总数据_第4张图片

 注意:对非数值数据使用MAX()函数   虽然MAX()函数一般用来找出最大的数值或日期值,

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

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

4.MIN()函数

MIN()函数与MAX()函数的功能正好相反,它返回指定列的最小值。要求指定列名。

示例:在表t_goods中找到price列的最小值

输入: select MIN(price)

           as MIN_price

           from t_goods;

输出:

【MySQL】汇总数据_第5张图片

 

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

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

5.SUM()函数

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

示例:在表t_goods中计算price的总和并放在SUM_price列中

输入:select SUM(price)  

           as SUM_price

           from t_goods;

输出:

【MySQL】汇总数据_第6张图片

 SUM()也可以用来计算合计计算值。

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

二、聚集不同值

以上五个函数都可以都可以如下使用:

  1. 对所有的行执行计算,指定ALL参数或不给参数(因为ALL是默认行为)
  2. 只包含不同的值,指定DISTINCT参数

distinct的作用就是去重

注意:如果指定列名,则distinct只能用于count()。distinct不能用于count(*),因此不允许使用count(distinct),否则会产生错误。类似的,distinct必须使用列名,不能用于计算或表达式。

将distinct用于MAX和MIN函数   虽然技术上可以用在这俩个函数上,但是没有实际价值,最大值和最小值不管是否包含不同值都是相同的。

三、组合聚集函数

        目前为止的所有聚集函数例子都只涉及单个函数。但实际上select语句可根据需要包含多个聚集函数。

示例:在t_goods中找出price的数量以及最大值,最小值,平均值

输入:select count(*) as price,

                     MAX(price) as MAX_price,

                    MIN(price) as MIN_price,

                    AVG(price) as AVG_price

            from t_goods;

输出:

 取别名:在指定别名以包含某个聚集函数的结果时,不应该使用表中的实际列名。这样做使SQL更易于理解和使用。

你可能感兴趣的:(MySQL,mysql,数据库)