12. 汇总数据

1. 聚集函数

  1. 聚集函数(aggregate function)运行在行组上,计算和返回单个值的函数
  2. img

1.1. avg()函数

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

    1. img
  3. NULL值AVG()函数忽略列值为NULL的行。

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

1.2. count()函数

  1. 用COUNT()确定表中行的数目或符合特定条件的行的数目。

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

    1. 使用COUNT(*)对表中行的数目进行计数,不管表列中包含的是空值(NULL)还是非空值。
    2. 使用COUNT(column)对特定列中具有值的行进行计数,忽略NULL值。
    3. img
    4. img

1.3. max()函数

  1. MAX()返回指定列中的最大值。MAX()要求指定列名

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

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

1.4. min()函数

  1. MIN()的功能正好与MAX()功能相反,它返回指定列的最小值。
img
  1. 对非数值数据使用MIN() MIN()函数与MAX()函数类似,MySQL允许将它用来返回任意列中的最小值,包括返回文本列中的最小值。在用于文本数据时,如果数据按相应的列排序,则MIN()返回最前面的行。

1.5. sum()函数

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

    1. img
  2. SUM()也可以用来合计计算值

    1. img
    2. SUM()函数忽略列值为NULL的行。

2. 聚集不同值

  1. 聚集函数的DISTINCT的使用

    1. img
  2. 以上5个聚集函数都可以如下使用:

    1. 对所有的行执行计算,指定ALL参数或不给参数(因为ALL是默认行为);
    2. 只包含不同的值,指定DISTINCT参数。
    3. ALL为默认ALL参数不需要指定,因为它是默认行为。如果不指定DISTINCT,则假定为ALL。
  3. 如果指定列名,则DISTINCT只能用于COUNT()。DISTINCT不能用于COUNT(*),因此不允许使用COUNT(DISTINCT),否则会产生错误。类似地,DISTINCT必须使用列名,不能用于计算或表达式。

3. 组合聚集函数

  1. 实际上SELECT语句可根据需要包含多个聚集函数。
img
img

12. 汇总数据
http://binbo-zappy.github.io/2024/11/27/mysql_bzbh/12-汇总数据/
作者
Binbo
发布于
2024年11月27日
许可协议