第六章 聚合函数与分组

第六章 聚合函数与分组
6.1 使用聚合函数进行统计汇总 
  常用的聚合函数如下:
                     COUNT:返回结果集中行的数目
                     SUM:返回结果集中所有值的总和 
                     AVG:返回结果集中所有值的平均值
                     MAX:返回结果集中所有值的最大值
                     MIN:返回结果集中所有值的最小值


 执行行和列计数
   SQL使用COUNT函数用于对满足某种条件的行计数。我们可以以多个方法使用这个函数,但是基本语法是相同的。通常,我们在一个SELECT查询按照如下方法使用COUNT函数:
      SELECT COUNT(<计数规范>) FROM <表名>;
 
                         计数规范关键字
      计数规范                                  含义
*                                  计数所有选择的行,包括NULL值
ALL列                              计数指定列的所有的非空值行。如果没有仅仅是指定列儿不带 ALL 或者DISTINCT ,这是默认操作。
DISTINCT                           计数指定列的所有唯一非空值行。(和ALL唯一区别就是DISTINCT不会排除重复)
 
   我们可以使用与前面一章中命名为计算列一样的方法来重命名COUNT列如下:
               SELECT COUNT(<计数规范>) as <列名> FROM <表名>;
 
 返回列合计值(SUM不能统计字符串,没有‘*’规范)
   使用SUM函数的语法与COUNT函数类似:
         SELECT SUM(<计数规范>) FROM <表名>;
         
 获取列平均值(AVG:过滤为空的值)
   列平均值(算术平均值)通过列的合计值除以参加合计的行数可以很容易获取,但是使用AVG函数更容易。AVG函数的用法与全面学过的聚合函数类似,其方法为:
      SELECT AVG(<平均值规范>) FROM <表名>;


 返回最大和最小值(也会过滤为空的值)(MAX/MIN没有ALL,DISTINCT,* 规范,但它们自动过滤空的值)
  SELECT MAX(<最大值规范>) FROM <表名>;
  SELECT MIN(<最小值规范>) FROM <表名>;


 数据分组
 例如: SELECT SUM(unitCost) FROM Prodcts WHERE SupplierID = 1;
        SELECT SUM(unitCost) FROM Prodcts WHERE SupplierID = 2;
        SELECT SUM(unitCost) FROM Prodcts WHERE SupplierID = 3;
       .   .    .   .   .


 过滤分组数据
  在SQL中使用GROUP BY子句来对数据分组,其典型语法如下:
   SELECT 列A,聚合函数(集合函数规范) FROM 表名
   WHERE 过滤条件
   GROUP BY 列A;


 使用HAVING子句(与WHERE区别,两者都过滤,WHERE运行在前面,不能运行组合函数。HAVING运行在后面,可以运行函数)
  SELECT StudentID, AVG(Mark) AS AverageMark
  FROM SrudentExam
  WHERE AVG(Make) < 50 OR AVG(Make) > 70
  GROUP BY StudentID;
 
 6.3 SQL语句的执行顺序
  一、执行FROM
  二、WHERE条件过滤
  三、GROUR BY分钟
  四、执行SELECT投影列
  五、HAVING子句
  六、ORDER BY 排序
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值