SQL数据库聚合函数

聚合函数
SQL提供以下常用集合函数,对查询结果集进行再计算: 
COUNT( ) 统计记录的条数 ;
MIN(列名 )计算某一数值型列的值的最小值;
MAX(列名 ) 计算某一数值型列的值的最大值;
SUM(列名)计算某一数值型列的值的总和
AVG(列名)计算某一数值型列的值的平均值。
聚合函数示例
查询学生的个数 

 

select  count(*) from  student
select  count(Dept) from student 

查询学生的总成绩和平均成绩 

 

select sum(Grade) as 总成绩,avg(Grade) as 平均成绩 from student_course

查询计算机系中年龄最大和最小的学生 

 

select max(Age) , min(Age) from student
where Dept='计算机应用'

聚合函数与分组查询
SQL语言中,可使用group by子句对查询的结果集进行分组。将查询结果表的各行按一列或多列取值相等的原则进行分组
在使用group by时,必须注意:
SELECT子句的字段列表中,除了聚合函数以外,其他所出现的字段一定要在group by子句中有定义才行。
group by子句中不能使用字段别名.
Sql server中text,ntext,image类型的数据不能作group by子句的分组依据
group by可与order by连用,order by 子句中可包含聚合函数

分组查询示例
查询每个系有多少个学生

select max(Age) , min(Age) from student
where Dept='计算机应用'

查询每个学生选课成绩的总分和平均分

select SID ,sum(Grade) as 总分,avg(Grade) as 平均分
     from student_course
     group by SID

根据条件分组查询
如果分组后还要求按一定的条件对这些组进行筛选,最终只输出满足指定条件的组,则可以使用HAVING短语指定筛选条件
查询学生超过3个的系

select dept,count(SID) 
from student
group by dept having count(SID)>3

注:WHERE子句与HAVING短语的根本区别在于作用对象不同。WHERE子句作用于基本表或视图,在分组之前使用,从中选择满足条件的元组。HAVING短语作用于组,在分组后使用从中选择满足条件的组。 聚合函数条件表达式,只能在having中,不能在where应用
SELECT语句标准语法小结
SELECT <查询目标列组>
FROM <参与查询的表>
[WHERE <查询条件> ]
[GROUP BY <分组表达式>][HAVING<分组查询条件>]
[ORDER BY <排序表达式> [ASC∣DESC ]]
整个语句的含义为:根据 WHERE子句中的条件,从表中找出满足条件的记录。按SELECT子句中的目标列,选出记录形成结果表。如果有ORDER子句,则结果表要根据指定的表达式按升序(ASC)或降序(DESC)排序。如果有GROUP子句,则将结果按列名分组,根据 HAVING指出的条件,选取满足该条件的组予以输出。
group by…rollup 汇总小计
同时使用group by子句和操作符rollup,计算每个分组中
的合计值和所有分组的汇总值。
    注意:
    1、计算出的合计值和汇总值,将在结果集中增加一行,新
增的一行以NULL来标识

综合查询

select SID as 学号,count(CID) as 选课门数,sum(Grade) as 总成绩,avg(Grade) as 平均成绩
from student_course
where SCID<=11
group by SID having count(CID)>=2 and avg(Grade)>60
order by avg(Grade) desc

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值