sql server实验8 单表查询

2025-11-07 01:31:07

1、① 查询平均成绩大于60 分的同学的学号和平均成绩(思路按学号分组计算学生的平均成绩,用having子句筛选出平均成绩大于60的学生);

select sno as 学号,avg(score) AS 平均成绩

from sc

GROUP BY SNO

HAVING AVG(SCORE)>60

sql server实验8 单表查询

2、① 查询姓“刘”的老师的个数

select count(*) as 姓刘教师个数

from teacher

where tname like '刘%'

sql server实验8 单表查询

3、① 查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分

select cno as 课程ID,max(score) as 最高分,min(score) as 最低分

from sc

group by cno 

sql server实验8 单表查询

4、① 按各科平均成绩从低到高和及格率的百分数从高到低顺序,效果如下(思路:可以通过case when..then..else..end统计人数)):

select cno as 课程ID,avg(score) as 平均成绩,sum(case when score>60 then 1 else 0 end)*100/count(*) as '及格率%'

from sc

group by cno

order by avg(score) desc

sql server实验8 单表查询

5、① 查询每门课程被选修的学生数

select cno,count(*) as 选课人数

from sc

group by cno

sql server实验8 单表查询

6、① 查询男生、女生人数

方法一:

select sum(case when ssex='男' then 1 else 0 end) as 男生总人数,sum(case when ssex='女' then 1 else 0 end) as 女生总人数

from student

sql server实验8 单表查询

7、方法二:

select ssex,count(*) as 人数

from student

group by ssex

sql server实验8 单表查询

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢