SQL Server学习笔记——order聚集函数group
Posted Aiden_Zhao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL Server学习笔记——order聚集函数group相关的知识,希望对你有一定的参考价值。
SQL Server学习笔记——order、聚集函数、group
已知数据库中存在四个表:
- major:
- stu:
- cou
- sc
1. order by
(1) 查询学生成绩,要求按照成绩升序排列
select * from sc order by grade
查询结果为:
(2) 查询学生成绩,要求按照成绩降序排列
select * from sc order by grade desc
查询结果为:
order 语句总结:
- 升序:order by …
- 降序:order by … desc
2. 聚集函数
(1) 计数:count
例1:查询学生总数:
select count(*) as num from stu
或者写为:
select count(sno) as num from stu
查询结果为:
例2:查询选修课程的学生数量:
select count(distinct sno) as num from sc
查询结果为:
注:count语句会自动忽略NULL,即NULL不参与计数。
(2) 求平均:avg
查询课程’20201’课程的学生平均成绩:
select avg(grade) as average from sc where cno like '20201'
查询结果为:
(3) 求最大:max
查询课程’20201’课程的学生最高成绩:
select max(grade) as maximum from sc where cno like '20201'
查询结果为:
(4) 求最小:min
查询课程’20201’课程的学生最低成绩:
select min(grade) as minimum from sc where cno like '20201'
查询结果为:
3. group by
(1) 求各个课程号及相应的选修人数
select cno, count(sno) as num from sc group by cno
结果为:
(2) 查询平均成绩大于等于90的学生学号及平均成绩
select sno, avg(grade) from sc where avg(grade)>=90
报错:
原因是where语句之后不能使用聚合函数作为条件表达式,上述语句应改写为:
select sno, avg(grade) as avg_grade from sc group by sno having avg(grade) >= 90
结果为:
注:group by不一定需要having,但having一定要搭配group by。
以上是关于SQL Server学习笔记——order聚集函数group的主要内容,如果未能解决你的问题,请参考以下文章