[数据库] 合肥工业大学—SQL Server数据库实验八:使用聚集函数的SELECT语句

228 0
Honkers 2025-4-9 22:07:00 | 显示全部楼层 |阅读模式

在数据库EDUC中用SQL语句实现如下查询:

1) 查询学生的总人数

  1. -- 查询学生的总人数
  2. select count(*) from student
  3. select count(1) from student
复制代码

2) 查询每个专业的专业编号、专业名称、学生人数、学生的平均年龄

  1. -- 查询每个专业的专业编号、专业名称、学生人数、学生的平均年龄
  2. select mj_id '专业编号', mj_name '专业名称', count(*) '学生人数', avg(datediff(year,st_born,getdate())) '学生的平均年龄'
  3. from major,student
  4. where student.tc_mj = major.mj_id
  5. group by mj_id,mj_name
复制代码

3) 查询选修了课程的学生人数

  1. -- 查询选修了课程的学生人数
  2. select count(distinct sc_id) from select_course
复制代码

4) 查询选修了课程“100”,且成绩超过该课程平均成绩的学生学号、姓名

  1. -- 查询选修了课程“100”,且成绩超过该课程平均成绩的学生学号、姓名
  2. select st_id,st_name
  3. from select_course,student
  4. where sc_id in (select sc_id from select_course where sc_num = 100)
  5. and sc_id = st_id
  6. and sc_num = 100
  7. and sc_grade>(select avg(sc_grade) from select_course where sc_num = 100)
复制代码

5) 查询每门课的课程号、选课人数、平均成绩、最高分和最低分。

  1. -- 查询每门课的课程号、选课人数、平均成绩、最高分和最低分
  2. select cs_id, count(sc_num) '选课人数',avg(sc_grade) '平均分', max(sc_grade) '最高分', min(sc_grade) '最低分'
  3. from course,select_course
  4. where cs_id = sc_num
  5. group by cs_id
复制代码

6) 查询选修课程超过2 门课的学生学号和姓名。

  1. -- 查询选修课程超过2 门课的学生学号和姓名
  2. select distinct st_id,st_name
  3. from student,select_course sc
  4. where sc_id = st_id
  5. and exists (
  6. select sc_id,count(sc_num)
  7. from select_course sc1
  8. where sc.sc_id = sc1.sc_id
  9. group by sc_id
  10. having count(*) > 2)
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Honkers

特级红客

关注
  • 3167
    主题
  • 36
    粉丝
  • 0
    关注
这家伙很懒,什么都没留下!

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2025 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行