SQL函数

聚集函数通常和GROUP BY联合起来使用

()必选,[]可选

COUNT(*) 统计元组个数,返回被选行数

COUNT([DISTINCT|ALL]<列名>) 统计一列中值的个数

SUM([DISTINCT|ALL]<列名>) 统计一列值的总和  此列必须为数值型

AVG([DISTINCT|ALL]<列名>)计算一列值的平均值  此列必须为数值型

MAX([DISTINCT|ALL]<列名>)计算某一列值的最大值

MIN([DISTINCT|ALL]<列名>)计算某一列值的最小值

GROUP BY 子句分组  有点像透视表,可以拉分组

细化聚集函数的作用对象

如果未对查询结构分组,聚集函数将作用于整个查询结果

对查询结果分组后,聚集函数将分别作用每一个组

按指定的一列或多咧分组,值相等的为一组

选修不同课程的人数的学号

SELECT Cno, COUNT(Sno) 选择课程编号,及选修课程的人数的计数

FROM SC

GROUP BY Cno  以课程编号分组

获得选修课程数大于3的学生的学号

SELECT Sno 学生学号

FROM SC

GROUP BY Sno  以学生学号分组

HAVING COUNT(*)>3  行数大于3

错误案例:

SELECT Sno ,AVG(Grade)

FROM SC

WHERE AVG(Grade)>=90  WHERE是对记录的限定,但是AVG是对组的限定是在GROUP BY基础上的WHERE是作用于记录,HAVING 作用于记录之上的分组

GROUP BY Sno

 

正确案例:

SELECT Sno,AVG(Grade)

FROM SC

GROUP BY Sno

HAVING AVG(Grade)>=90

 

练习列出计算机系姓刘同学的信息,按照学号大小排序

SELECT *

FROM Student

WHERE Sdept =’CS’ AND Sname LIKE ‘刘%‘

ORDER BY Sno

按系区分男女,统计各个系的人数,降序排列

SELECT Sdept,Ssex,COUNT(Sno)

FROM Student

GROUP BY Sdept,Ssex

ORDER BY COUNT(Sno)

 

 

 

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值