数据查询—聚集函数、GROUP BY子句

一、聚集函数

1.常用的聚集函数

COUNT(*)                                  统计元组个数
COUNT([DISTINCT|ALL] <列名>)              统计一列中值的个数
SUM([DISTINCT|ALL] <列名>)                计算一列值的总和(此列必须是数值型) 
AVG([DISTINCT|ALL] <列名>)                计算一列值的平均值(此列必须是数值型) 
MAX([DISTINCT|ALL] <列名>)                求一列中的最大值
MIN([DISTINCT|ALL] <列名>)                求一列中的最小值

2.注意细节  

    (1)如果指定DISTINCT短语,则表示在计算时要取消指定列中的重复值。如果不指定DISTINCT短语或者指定ALL短语(ALL为默认值),则表示不取消重复值。

-- eg1:查询学生总人数
SELECT COUNT(*) FROM Student;
-- eg2:查询选修了课程的学生人数
SELECT COUNT(DISTINCT Sno) FROM SC; --同一学生选修多门课有多条纪录,所以计算时需要去重

    (2)当聚集函数遇到空值时,除COUNT(*)外,都跳过空值而处理非空值。

    (3)COUNT(*)是对元组进行计数,某个元组的某一个或者部分列取空值不影响COUNT的统计结果。

    (4)聚集函数只能用于SELECT子句和GROUP BY中的HAVING子句。

二、GROUP BY子句

  • GROUP BY子句将查询结果按某一列或多列的值分组,值相等的为一组
  • 分组后聚集函数将作用于每一个组,即每个组都有一个函数值。
  • 使用GROUP BY 子句后,SELECT子句的列名列表中只能出现分组属性(GROUP BY后的属性)和聚集函数。

三、WHERE子句和HAVING短语的区别

    WHERE子句与HAVING短语的区别在于作用对象不同。

  • WHERE子句作用于基本表或者视图,从中选择满足条件的元组。
  • HAVING短语作用于组,从中选择满足条件的组。

转载于:https://my.oschina.net/zhangyujian/blog/780090

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值