MySQL知多少(二)---聚合函数总结

  1. AVG() 返回某列的平均值
    注意:只用于单个列AVG()只能用来确定特定数值列的平均值,而且列名必须作为函数参数给出。为了获得多个列的平均值,必须使用多个AVG()函数。
    NULL值AVG()函数忽略列值为NULL的行。

  2. COUNT() 返回某列的行数
    注意:COUNT()函数有两种使用方式。
    使用COUNT(*)对表中行的数目进行计数,不管表列中包含的是空值(NULL)还是非空值。
    使用COUNT(column)对特定列中具有值的行进行计数,忽略NULL值。

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

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

  4. MIN() 返回某列的最小值
    注意:对非数值数据使用MIN()
    MIN()函数与MAX()函数类似,MySQL允许将它用来返回任意列中的最小值,包括返回文本列中的最小值。在用于文本数据时,如果数据按相应的列排序,则MIN()返回最前面的行。
    NULL值MIN()函数忽略列值为NULL的行

  5. SUM() 返回某列值之和
    注意:NULL值SUM()函数忽略列值为NULL的行。

  6. 组合聚合函数

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

注意:

  • 在多个列上进行计算:
    利用标准的算术操作符,所有聚集函数都可用来执行多个列上的计算。
  • 对所有的行执行计算,指定ALL参数或不给参数(因为ALL是默认行为); 只包含不同的值,指定DISTINCT参数
SELECT AVG(DISTINCT prod_price)
FROM products
WHERE vend_id = 1003;
  • 如果指定列名,则DISTINCT只能用于COUNT()。DISTINCT不能用于COUNT(*),因此不允许使用COUNT(DISTINCT),否则会产生错误。类似地,DISTINCT必须使用列名,不能用于计算或表达式。
  • 将DISTINCT用于MIN()和MAX() 虽然DISTINCT从技术上可用于MIN()和MAX(),但这样做实际上没有价值。一个列中的最小值和最大值不管是否包含不同值都是相同的
  • 使用聚合函数查询时,不要再用非聚合函数的方式查询其他字段

你可能感兴趣的:(MySQL)