本题目要求编写SQL语句,
统计各专业的学生选课的平均成绩,如果某专业尚未有任何学生选修课程或成绩为空时,平均分计为0。输出结果集按照major表中的mno升序排序。

提示:MSSQLServer 评测SQL语句。

表结构:

定义表结构的SQL语句如下:

-- 专业表
CREATE TABLE major (  mno char(2) NOT NULL,mname nvarchar(20) NOT NULL,PRIMARY KEY (mno)
);
-- 学生表
CREATE TABLE stu (    sno char(4) NOT NULL,sname nvarchar(8) NOT NULL,sex smallint DEFAULT NULL,mno char(2) DEFAULT NULL,birdate datetime DEFAULT NULL,memo ntext,PRIMARY KEY (sno),CONSTRAINT  fk_stu_mno FOREIGN KEY (mno) REFERENCES major (mno)
);
-- 课程表
CREATE TABLE  cou  (  cno  char(4) NOT NULL,cname  nvarchar(30) NOT NULL,credit  smallint DEFAULT NULL,ptime  char(5) DEFAULT NULL,teacher  nvarchar(10) DEFAULT NULL,PRIMARY KEY ( cno )
);
-- 学生选课成绩表
CREATE TABLE  sc  (  sno  char(4) NOT NULL,cno  char(4) NOT NULL,grade  decimal(4,1) DEFAULT NULL,PRIMARY KEY ( sno , cno ),CONSTRAINT  fk_sc_cno  FOREIGN KEY ( cno ) REFERENCES  cou  ( cno ),CONSTRAINT  fk_sc_sno  FOREIGN KEY ( sno ) REFERENCES  stu  ( sno )
);

表样例

上述表结构对应的表样例。例如

major表:

stu表:

sc表:

输出样例:

请在这里给出输出样例。例如:

SELECTmname 专业,isnull( avg( grade ), 0 )平均成绩
FROMmajorLEFT JOIN ( SELECT mno, grade FROM stu, sc WHERE stu.sno = sc.sno ) AS a ON major.mno = a.mno
GROUP BYmajor.mno,mname
ORDER BYmajor.mno;
--思路:使用left join 能查询到该专业有哪些学生没有选择,连接stu,sc表,查询学生的专业号和成绩,在与major连接,最后通过专业号,和专业名分组,因为major和a相连有mno和mname字段,所以要根据除聚合函数外的字段分组,本题要求使用sql server,这里判断平均成绩为空,就不能使用ifnull,而是使用isnull

10-13 查询各专业学生的平均成绩(MSSQL)相关推荐

  1. 10-230 查询计算机工程专业学生选修但软件工程专业学生没有选修的课程

    分数 10 全屏浏览题目 切换布局 作者 张庆 单位 集美大学 本题目要求编写SQL语句,查询计算机工程专业学生选修但软件工程专业学生没有选修的课程名称. 提示:请使用SELECT语句作答. 表结构: ...

  2. 洪君:查出“张”姓学生中平均成绩大于75分的学生信息查询出每门课程的成绩都大于80的学生

    查询出"张"姓学生中平均成绩大于75分的学生信息 表名:student_score  name course score  张青 语文 72  王华 数学 72  张华 英语 81 ...

  3. 定义一个数组来存储10个学生的成绩,计算并输出学生的平均成绩

    定义一个数组来存储10个学生的成绩,计算并输出学生的平均成绩. <!DOCTYPE html> <html lang="en"> <head>& ...

  4. python输入10个学生的成绩储存在列表中_获得10名学生的平均成绩python

    我有一个程序,要求用户输入一个学生的网络ID,然后他们在5个作业中的成绩加上他们在期中和期末考试中得到的分数.然后将它们相加和除以得到学生的平均成绩,并以表格形式显示.在 我需要做的是,将整个过程循环 ...

  5. 用C语言编制查询某班同学的平均成绩

    用C语言编制查询某班同学的平均成绩 1.实验目的与要求 ⑴ 掌握用C语言编写查询统计程序. ⑵ 掌握C语言的文件读写的基本操作. 2.实验内容 ⑴ 创建一个文本文件,含有若干班级的数据,要求其数据每个 ...

  6. 题目:MySql数据查询题目(学生和课程成绩)

    1)     创建student和score表 2)     为student表和score表增加记录 3)     查询student表的所有记录 SELECT * from student 4)  ...

  7. mysql 查询姓张或者姓王_题目:MySql数据查询题目(学生和课程成绩)

    1)     创建student和score表 2)     为student表和score表增加记录 3)     查询student表的所有记录 SELECT * from student 4)  ...

  8. c语言 已知5名同学的4门成绩,已知5个学生的4门课的成绩,要求求出每个学生的平均成绩,然后对平均成绩从高到低将各学生的成绩排 序记录...

    满意答案 anxianhao 2015.10.04 采纳率:45%    等级:12 已帮助:5464人 已知5个学生的4门课的成绩,要求求出每个学生的平均成绩,然后对平均成绩从高到低将各学生的成绩排 ...

  9. 【C语言】结构体-求出学生的平均成绩放在成员ave中

    先说下什么是结构体? 在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类.结构体可以被声明为变量.指针或数组等,用以实现较复杂 ...

最新文章

  1. Python之父退休,C语言之父与世长辞,各大编程语言创始人现状盘点
  2. Python实例浅谈之五Python守护进程和脚本单例运行
  3. 2021-春季学习-智能车技术创新与实践-Lesson 1
  4. jdbc就是这么简单
  5. Android网络编程的Socket通信总结
  6. 2018年9月份GitHub上最热门的Python项目
  7. face recongnition
  8. 网页 JavaScript的DOM操作
  9. Bigtable:一个分布式的结构化数据存储系统(转)
  10. linux 文件系统路径,Linux编程 1 (文件系统路径说明, 目录结构说明)
  11. ajax 解析数组集合,ajax怎样解析json数组并用模板引擎渲染
  12. epoll 使用实例
  13. 密码库LibTomCrypt学习记录——(0)LibTomCrypt简介
  14. 赛微微电子通过注册:拟募资8亿 年营收3.4亿
  15. 荷兰量子生态联盟投资110万欧元开发超导量子处理器
  16. 构建基于MX1919的超声波阵列驱动板
  17. win7做服务器性能如何,win7如何做服务器配置
  18. 韦东山学习笔记——UART(串口)的使用
  19. 微信小程序 《数字华容道》
  20. Android开源源码

热门文章

  1. 荐读 | 数据共享与隐私矛盾:技术未满,向现实妥协
  2. 2021-12-05 vue移动端卖座电影项目(六) 为详情页面Detail.vue获取后台数据并设置样式
  3. 关闭Win10自动更新工具
  4. php开发工程师前景如何
  5. sklearn.metrics.roc_curve使用简要说明
  6. flash剧本策划节约用水_2018-2019-节约用水剧本-优秀word范文 (6页)
  7. 国网GIM设备三维模型要求细则 - 干式电抗器
  8. linux mount命令
  9. 响铃:竞争战略视角下,品牌打造的假象与真相
  10. 派克parker I-FORCE 410 无铁芯直线电机