————介绍什么是SQL的汇总函数,如何利用它们汇总表的数据

函数 说明
AVG() 返回某列的平均值
COUNT() 返回某列的行数
MAX() 返回某列的最大值
MIN() 返回某列的最小值
SUM() 返回某列值之和

8.1 AVG()函数

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

    1. SELECT AVG(Prod_price) AS avg_price FROM Products; /*返回表中所有产品的平均价格*/
    SELECT AVG(Prod_price) AS avg_price FROM Products WHERE vend_id = 'DLL01';
    

    8.2 COUNT()函数

  • 使用COUNT(*)对表中行的数目进行计数,不管表列中包含的是空值(NULL)还是非空值

    SELECT COUNT(*) AS num_cust FROM Customers;
    
  • 使用COUNT(column)对特定列中具有值的行进行计数,忽略NULL值

    SELECT COUNT(cust_email) AS num_cust FROM Customers;
    

    8.3 MAX()函数

  • MAX()返回指定列中的最大值,MAX()要求指定列名

  • MAX()函数忽略列值为NULL的行
  • MAX()函数对于文本数据时,返回该列排序后的最后一行

    SELECT MAX(prod_price) AS max_price FROM Products;
    

    8.4 MIN()函数

    SELECT MIN(prod_price) AS min_price FROM Products;
    
  • MIN()函数对于文本数据时,返回该列排序后的第一行

  • 其他与MAX()函数类似

    8.5 SUM()函数

    SELECT SUM(quantity) AS item_ordered FROM OrderItems WHERE order_num = 20005;
    
  • SUM()也可以合计计算值

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

    SELECT SUM(item_price*quantity) AS total_price FROM OrderItems WHERE order_num = 20005;
    

    8.6 聚焦不同的值

  • 对所有行执行计算,指定ALL参数或不指定参数(因为ALL是默认行为)

  • 只包含不同值,指定DISTINCT参数,DISTINCT不能用于COUNT(*)
    SELECT AVG(DISTINCT Prod_price) AS avg_price FROM Products;
    

    8.7 组合聚焦函数

    SELECT语句可包含多个聚焦函数
    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;