mysql查询 多门课程的平均成绩_Mysql_多表查询练习
1 --1、查询所有的课程的名称以及对应的任课老师姓名
2 SELECT
3 c.cname,4 t.tname5 FROM
6 course c7 LEFT JOIN teacher t ON c.teacher_id =t.tid;8
9 --2、查询学生表中男女生各有多少人
10 SELECT
11 gender,12 count(sid)count
13 FROM
14 student15 GROUP BY
16 gender;17
18 --3、查询物理成绩等于100的学生的姓名
19 SELECT
20 a.sid,21 b.sname22 FROM
23 score a24 LEFT JOIN student b ON a.student_id =b.sid25 WHERE
26 a.num = 100
27 AND a.course_id =(28 SELECT
29 c.cid30 FROM
31 course c32 WHERE
33 c.cname ="物理"34 );35
36 --4、查询平均成绩大于八十分的同学的姓名和平均成绩
37 SELECT
38 a.sname,39 c.avg_score40 FROM
41 student a42 INNER JOIN(43 SELECT
44 b.*, AVG(b.num)avg_score45 FROM
46 score b47 GROUP BY
48 b.student_id49 HAVING
50 avg_score > 80
51 )c ON a.sid =c.student_id;52
53 --5、查询所有学生的学号,姓名,选课数,总成绩
54 SELECT
55 a.sid,56 a.sname,57 c.count_course,58 c.sum_score59 FROM
60 student a61 LEFT JOIN(62 SELECT
63 b.student_id,64 count(b.course_id)count_course,65 SUM(b.num)sum_score66 FROM
67 score b68 GROUP BY
69 b.student_id70 )c ON a.sid =c.student_id;71
72 --6、 查询姓李老师的个数
73 SELECT
74 count(tid)75 FROM
76 teacher t77 WHERE
78 t.tname LIKE "李%";79
80 --7、 查询没有报李平老师课的学生姓名
81 SELECT
82 a.sname83 FROM
84 student a85 WHERE
86 a.sid NOT IN(87 SELECT
88 b.student_id89 FROM
90 score b91 WHERE
92 course_id IN(93 SELECT
94 c.cid95 FROM
96 course c97 WHERE
98 c.teacher_id IN(99 SELECT
100 d.tid101 FROM
102 teacher d103 WHERE
104 d.tname ="李平老师"105 )106 )107 );108
109 --8、 查询物理课程比生物课程高的学生的学号
110 SELECT
111 c.student_id112 FROM
113 (114 SELECT
115 *
116 FROM
117 score a118 WHERE
119 a.course_id =(120 SELECT
121 b.cid122 FROM
123 course b124 WHERE
125 b.cname ="物理"126 )127 )c128 INNER JOIN(129 SELECT
130 *
131 FROM
132 score d133 WHERE
134 d.course_id =(135 SELECT
136 f.cid137 FROM
138 course f139 WHERE
140 f.cname ="生物"141 )142 )g ON c.student_id =g.student_id143 AND c.num >g.num;144
145 --9、 查询没有同时选修物理课程和体育课程的学生姓名
146 SELECT
147 a.sname148 FROM
149 student a150 WHERE
151 a.sid NOT IN(152 SELECT
153 d.student_id154 FROM
155 (156 SELECT
157 *
158 FROM
159 score b160 WHERE
161 b.course_id =(162 SELECT
163 c.cid164 FROM
165 course c166 WHERE
167 c.cname ="物理"168 )169 )d170 INNER JOIN(171 SELECT
172 *
173 FROM
174 score f175 WHERE
176 f.course_id =(177 SELECT
178 g.cid179 FROM
180 course g181 WHERE
182 g.cname ="体育"183 )184 )h ON d.student_id =h.student_id185 );186
187 --10、查询挂科超过两门(包括两门)的学生姓名和班级
188 SELECT
189 c.sname,190 c.caption191 FROM
192 (193 SELECT
194 *
195 FROM
196 student a197 LEFT JOIN class b ON a.class_id =b.cid198 )c199 INNER JOIN(200 SELECT
201 d.student_id,202 count(d.student_id)count
203 FROM
204 score d205 WHERE
206 d.num < 60
207 GROUP BY
208 d.student_id209 HAVING
210 count >= 2
211 )e ON c.sid =e.student_id;212
213 --11、查询选修了所有课程的学生姓名
214 SELECT
215 s.sname216 FROM
217 student s218 INNER JOIN(219 SELECT
220 a.student_id,221 count(a.course_id)count_course222 FROM
223 score a224 GROUP BY
225 a.student_id226 HAVING
227 count_course =(SELECT count(*) FROMcourse)228 )b ON s.sid =b.student_id;229
230 --12、查询李平老师教的课程的所有成绩记录
231 SELECT
232 a.*
233 FROM
234 score a235 WHERE
236 a.course_id IN(237 SELECT
238 b.cid239 FROM
240 course b241 WHERE
242 b.teacher_id =(243 SELECT
244 c.tid245 FROM
246 teacher c247 WHERE
248 c.tname ="李平老师"249 )250 )251
252 --13、查询全部学生都选修了的课程号和课程名
253 SELECT
254 c.cid,255 c.cname256 FROM
257 course c258 INNER JOIN(259 SELECT
260 a.course_id,261 count(a.student_id)count_student262 FROM
263 score a264 GROUP BY
265 a.course_id266 HAVING
267 count_student =(SELECT count(*) FROMstudent)268 )b ON c.cid =b.course_id;269
270 --14、查询每门课程被选修的次数
271 SELECT
272 c.cid,273 c.cname,274 b.count_student275 FROM
276 course c277 LEFT JOIN(278 SELECT
279 a.course_id,280 count(a.student_id)count_student281 FROM
282 score a283 GROUP BY
284 a.course_id285 )b ON c.cid =b.course_id;286
287 --15、查询只选修了一门课程的学生姓名和学号
288 SELECT
289 s.sname290 FROM
291 student s292 INNER JOIN(293 SELECT
294 a.student_id,295 count(a.course_id)count_course296 FROM
297 score a298 GROUP BY
299 a.student_id300 HAVING
301 count_course = 1
302 )b ON s.sid =b.student_id;303
304 --16、查询所有学生考出的成绩并按从高到低排序(成绩去重)
305 SELECT DISTINCT
306 (num)307 FROM
308 score a309 ORDER BY
310 a.num DESC
311
312 --17、查询平均成绩大于85的学生姓名和平均成绩
313 SELECT
314 a.sname315 FROM
316 student a317 INNER JOIN(318 SELECT
319 b.student_id,320 avg(b.num)avg_num321 FROM
322 score b323 GROUP BY
324 b.student_id325 HAVING
326 avg_num > 85
327 )c ON a.sid =c.student_id;328
329 --18、查询生物成绩不及格的学生姓名和对应生物分数
330 SELECT
331 a.sname,332 c.num333 FROM
334 student a335 INNER JOIN(336 SELECT
337 b.student_id,338 b.num339 FROM
340 score b341 WHERE
342 b.course_id =(343 SELECT
344 cid345 FROM
346 course347 WHERE
348 cname ="生物"349 )350 AND b.num < 60
351 )c ON a.sid =c.student_id;352
353 --19、查询在所有选修了李平老师课程的学生中,这些课程(李平老师的课程,不是所有课程)平均成绩最高的学生姓名
354 SELECT
355 sname356 FROM
357 student358 WHERE
359 sid =(360 SELECT
361 a.student_id362 FROM
363 score a364 WHERE
365 a.course_id IN(366 SELECT
367 b.cid368 FROM
369 course b370 WHERE
371 b.teacher_id =(372 SELECT
373 c.tid374 FROM
375 teacher c376 WHERE
377 c.tname ="李平老师"378 )379 )380 GROUP BY
381 a.student_id382 ORDER BY
383 avg(num)DESC
384 LIMIT 1
385 )386
387 --20、查询每门课程成绩最好的前两名学生姓名
388 SELECT
389 e.sname,390 f.course_id,391 f.num392 FROM
393 student e394 INNER JOIN(395 SELECT
396 c.*
397 FROM
398 score c399 INNER JOIN(400 SELECT
401 *
402 FROM
403 (404 SELECT
405 course_id,406 MAX(num)num407 FROM
408 score409 GROUP BY
410 course_id411 ORDER BY
412 course_id,413 num DESC
414 )a415 UNION ALL
416 (417 SELECT
418 a.course_id,419 MAX(a.num)num420 FROM
421 score a422 INNER JOIN(423 SELECT
424 course_id,425 MAX(num)num426 FROM
427 score428 GROUP BY
429 course_id430 ORDER BY
431 course_id,432 num DESC
433 )b ON a.course_id =b.course_id434 WHERE
435 a.num
437 a.course_id438 )439 )d ON c.course_id =d.course_id440 WHERE
441 c.num =d.num442 ORDER BY
443 c.course_id,444 c.num DESC
445 )f ON e.sid =f.student_id446 ORDER BY
447 f.course_id,448 f.num DESC
449
450 --21、查询不同课程但成绩相同的学号,课程号,成绩
451 SELECT
452 student_id,453 course_id,454 num455 FROM
456 score457 WHERE
458 num IN(459 SELECT
460 a.num461 FROM
462 (463 SELECT
464 *
465 FROM
466 score467 GROUP BY
468 course_id,469 num470 )a471 GROUP BY
472 a.num473 HAVING
474 count(a.num)> 1
475 )476 ORDER BY
477 num;478
479 --22、查询没学过“叶平”老师课程的学生姓名以及选修的课程名称;
480 SELECT
481 c.sname,482 GROUP_CONCAT(d.cname)483 FROM
484 (485 SELECT
486 a.*, b.course_id487 FROM
488 (489 SELECT
490 *
491 FROM
492 student493 WHERE
494 sid NOT IN(495 SELECT DISTINCT
496 (student_id)497 FROM
498 score499 WHERE
500 course_id IN(501 SELECT
502 cid503 FROM
504 course505 WHERE
506 teacher_id =(507 SELECT
508 tid509 FROM
510 teacher511 WHERE
512 tname ="李平老师"513 )514 )515 )516 )a517 INNER JOIN score b ON a.sid =b.student_id518 )c519 INNER JOIN course d ON c.course_id =d.cid520 GROUP BY
521 c.sname522
523 --23、查询所有选修了学号为1的同学选修过的一门或者多门课程的同学学号和姓名;
524 SELECT
525 a.sid,526 a.sname527 FROM
528 student a529 INNER JOIN(530 SELECT
531 student_id532 FROM
533 score534 WHERE
535 student_id != 1
536 AND course_id IN(537 SELECT
538 course_id539 FROM
540 score541 WHERE
542 student_id = 1
543 )544 GROUP BY
545 student_id546 )b ON a.sid =b.student_id547
548 --24、任课最多的老师中学生单科成绩最高的学生姓名
549 SELECT
550 sname551 FROM
552 student553 WHERE
554 sid =(555 SELECT
556 student_id557 FROM
558 score559 WHERE
560 course_id IN(561 SELECT
562 cid563 FROM
564 course565 WHERE
566 teacher_id =(567 SELECT
568 teacher_id569 FROM
570 course571 GROUP BY
572 teacher_id573 ORDER BY
574 count(teacher_id)DESC
575 LIMIT 1
576 )577 )578 ORDER BY
579 num DESC
580 LIMIT 1
581 )
mysql查询 多门课程的平均成绩_Mysql_多表查询练习相关推荐
- mysql查询 多门课程的平均成绩_MySQL 45道查询习题详解
1.首先进行建表: 按 Ctrl+C 复制代码 #建学生信息表studentcreate table student ( sno varchar(20) not null primary key, s ...
- mysql查询 多门课程的平均成绩_数据分析中级 MySQL 任务6 总结复习
0 入门 0.1 MySQL安装,Navicat安装: 0.2 MySQL设置,Nacicat设置,包括链接点,unicode-8: 0.3 创建表格,student, course, score, ...
- mysql查询成绩表中课程编号升序,Python 之 MySql 每日一练 232——查询每门课程的平均成绩...
一.表名和字段 –1. 学生表 student (s_id,s_name,s_birth,s_sex) –学生编号,学生姓名,出生年月,学生性别 –2. 课程表 course (c_id,c_name ...
- 【基于MapReduce的成绩分析系统】——计算每门课程的平均成绩、最高成绩、最低成绩
本次用 MapReduce 计算每门课程的平均成绩.最高成绩和最低成绩也是我们<大数据基础>课程的期末大作业 [ 基于MapReduce的成绩分析系统 ] 的功能需求之一. 临近期末,在这 ...
- 三个学生四门课程,求出学生平均成绩和课程的平均成绩;n个学生每人m门课程,找出最高分学生,输出有一门成绩不合格的学生的各门成绩,计算每门成绩都在85分及以上的学生的人数(C)
养成好习惯,点个赞 再走:有问题,欢迎私信.评论,我看到都会回复的 以下两个题目就是玩一下for循环语句和二维数组 文章目录 三个学生四门课程,求出学生平均成绩和课程的平均成绩 n个学生,每人m门课程 ...
- 已知M个学生的N门课程的成绩,分别计算每为学生的平均成绩和每门课程的平均成绩输出
代码如下: #include <stdio.h>#define M 5 #define N 4 void main(){int i,j;float score[M][N] = {{78,8 ...
- 求两门成绩平均c语言,数据结构课的作业 要求用链表实现学生的学号 姓名 两门课的成绩 同时求出课程的平均成绩...
数据结构课的作业 要求用链表实现学生的学号 姓名 两门课的成绩 同时求出课程的平均成绩 关注:69 答案:2 mip版 解决时间 2021-02-04 09:43 提问者孤城古巷 2021-02- ...
- 学习-输入5个学生的数学、语文、英语3门课程的成绩,计算并输出每一门课程的平均成绩和每一位学生的平均成绩
第1关:输入5个学生的数学.语文.英语3门课程的成绩,计算并输出每一门课程的平均成绩和每一位学生的平均成绩 任务描述 本关任务:输入5 个学生的数学.语文.英语 3 门课程的成绩,计算并输出每一门课程 ...
- 通过键盘输入三名同学四门课的成绩,分别求三名同学和四门课程的平均成绩。
要求所有成绩放到一个四行五列的数组中,输入时同一人数据间用空格不同人用回车其中最后一列和最后一行分别放每个学生的平均成绩,每门课程的平均成绩及班级的平均成绩. #include<stdio.h& ...
最新文章
- Deep Learning回顾之LeNet、AlexNet、GoogLeNet、VGG、ResNet
- 【数据库系统概论】考研附加部分重点分析【附加】
- 一方包,二方包,三方包的区别
- python 定时器_python 线程之四:定时器(Timer),非阻塞
- ElasticSearch 索引基本操作_04
- java android上传文件_Java-Android-如何将txt文件上传到网站?
- EfficientDet 目标检测开源实现
- php curl使用详解
- UIButton 文字图片排列
- Day 1: Introduction to Deep Learning
- perl hash输出类似HASH(0x26caf78)
- Windows8 RP版亲手体验全过程
- 《前端》阿里字体库iconfont使用方法
- 一周企业财报 | 阿迪达斯、盖璞、Natura、舍弗勒、百世集团等11家企业发布业绩...
- 我的世界服务器末地文件在哪,我的世界:找不到末地城怎么办?巧用2个操作,就能瞬间找到!...
- 用Javascript实现回到顶部效果
- blender bpy
- 指纹识别综述(1): 导论
- pc页面样式自适应的几种方案
- CSS揭秘——毛玻璃效果
热门文章
- 一文带你搞定抖音最近最火的情侣微信早报信息推送
- 计算机化系统知识培训,法规基本知识培训附录9计算机化系统.pptx
- xp系统访问共享服务器提示无网络路径,WinXP提示无任何网络提供程序接受指定的网络路径怎么办?...
- python笔记图片_图像 opencv - python笔记
- android4.4.4linux内核下载,Android 4.4源码下载
- 外国的搜索引擎 可搜索被封信息
- 机器人编程常用的四大语言
- ACD.Systems.Canvas.with.GIS.v14.0.1618 1CD(矢量绘图软件)
- 说说Android桌面(Launcher应用)背后的故事(八)——让桌面的精灵穿越起来
- 【题解】慈溪中学-8.13-T3