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的主要内容,如果未能解决你的问题,请参考以下文章

学习笔记12

数据库SQL语句学习笔记-汇总数据

SQL Server物化视图学习笔记

sql-server学习:索引

SQL Server学习笔记——函数

SQL Server学习笔记——函数