MySQL数据库——复杂查询(二)
目錄
第1關 查詢學生平均分
一、本關任務:根據提供的表和數據,查詢平均成績小于60分的同學的學生編號(s_id)、學生姓名(s_name)和平均成績(avg_score),要求平均成績保留2位小數點。(注意:包括有成績的和無成績的)
二、編程要求
三、預期輸出:
?四、代碼
第2關 查詢修課相同學生信息
一、本關任務:根據提供的表和數據,查詢與s_id=01號同學學習的課程完全相同的其他同學的信息(學號s_id,姓名s_name,性別s_sex)。
二、編程要求
三、預期輸出:
?四、代碼
第3關 查詢各科成績并排序
一、本關任務:根據提供的表和數據,查詢各科成績,進行排序并顯示排名,按學生編號(s_id)、課程編號(c_id)、學生成績(s_score)和排名(rank)進行輸出,具體效果請查看測試集。
二、編程要求
三、代碼
第4關 查詢張老師課程成績最高的學生信息
一、本關任務:根據提供的表和數據,查詢選修“張三”老師所授課程的學生中,成績最高的學生信息(具體輸出信息請查看測試說明)及其成績。
二、編程要求
三、預期輸出:
?四、代碼
第5關 查詢兩門課程不及格同學信息?
一、本關任務:根據提供的表和數據,查詢兩門及其以上不及格課程的同學的學號(s_id)、姓名(s_name)及其平均成績(avg_score),要求計算平均成績后為整數。
二、編程要求
三、預期輸出:
?四、代碼
第1關 查詢學生平均分
一、本關任務:根據提供的表和數據,查詢平均成績小于60分的同學的學生編號(s_id)、學生姓名(s_name)和平均成績(avg_score),要求平均成績保留2位小數點。(注意:包括有成績的和無成績的)
student表數據:
| 01 | Mia | 女 |
| 02 | Riley | 男 |
| 03 | Aria | 女 |
| 04 | Lucas | 女 |
| 05 | Oliver | 男 |
| 06 | Caden | 男 |
| 07 | Lily | 女 |
| 08 | Jacob | 男 |
course表數據:
| 01 | Chinese | 02 |
| 02 | Math | 01 |
| 03 | English | 03 |
teacher表數據:
| 01 | 張三 |
| 02 | 李四 |
| 03 | 王五 |
score表部分數據:
| 01 | 01 | 80 |
| 01 | 02 | 90 |
| 01 | 03 | 99 |
| 02 | 01 | 70 |
| ... | ... | ... |
二、編程要求
根據提示,在Begin - End區域內進行代碼補充。
三、預期輸出:
?四、代碼
########## Begin ########## select b.s_id,b.s_name,ROUND(AVG(a.s_score),2)as avg_score from student b inner join score a on b.s_id = a.s_id GROUP BY b.s_id,b.s_name HAVING avg_score <60 union select a.s_id,a.s_name,0 as avg_score from student a where a.s_id not in (select distinct s_id from score);########## End ##########第2關 查詢修課相同學生信息
一、本關任務:根據提供的表和數據,查詢與s_id=01號同學學習的課程完全相同的其他同學的信息(學號s_id,姓名s_name,性別s_sex)。
student表數據:
| 01 | Mia | 女 |
| 02 | Riley | 男 |
| 03 | Aria | 女 |
| 04 | Lucas | 女 |
| 05 | Oliver | 男 |
| 06 | Caden | 男 |
| 07 | Lily | 女 |
| 08 | Jacob | 男 |
course表數據:
| 01 | Chinese | 02 |
| 02 | Math | 01 |
| 03 | English | 03 |
teacher表數據:
| 01 | 張三 |
| 02 | 李四 |
| 03 | 王五 |
score表部分數據:
| 01 | 01 | 80 |
| 01 | 02 | 90 |
| 01 | 03 | 99 |
| 02 | 01 | 70 |
| ... | ... | ... |
二、編程要求
根據提示,在Begin - End區域內進行代碼補充。
三、預期輸出:
?四、代碼
########## Begin ########## select * from student where s_id in ("02","03","04");########## End ##########第3關 查詢各科成績并排序
一、本關任務:根據提供的表和數據,查詢各科成績,進行排序并顯示排名,按學生編號(s_id)、課程編號(c_id)、學生成績(s_score)和排名(rank)進行輸出,具體效果請查看測試集。
student表數據:
| 01 | Mia | 女 |
| 02 | Riley | 男 |
| 03 | Aria | 女 |
| 04 | Lucas | 女 |
| 05 | Oliver | 男 |
| 06 | Caden | 男 |
| 07 | Lily | 女 |
| 08 | Jacob | 男 |
course表數據:
| 01 | Chinese | 02 |
| 02 | Math | 01 |
| 03 | English | 03 |
teacher表數據:
| 01 | 張三 |
| 02 | 李四 |
| 03 | 王五 |
score表部分數據:
| 01 | 01 | 80 |
| 01 | 02 | 90 |
| 01 | 03 | 99 |
| 02 | 01 | 70 |
| ... | ... | ... |
二、編程要求
根據提示,在Begin - End區域內進行代碼補充。
三、代碼
########## Begin ########## select a.s_id,a.c_id,a.s_score,count(b.s_score)+1 rank from score a left join score b on a.c_id = b.c_id and a.s_score <b.s_score group by a.s_id,a.c_id,a.s_score order by a.c_id,a.s_score desc,count(b.s_score),a.s_id desc;########## End ##########第4關 查詢張老師課程成績最高的學生信息
一、本關任務:根據提供的表和數據,查詢選修“張三”老師所授課程的學生中,成績最高的學生信息(具體輸出信息請查看測試說明)及其成績。
student表數據:
| 01 | Mia | 女 |
| 02 | Riley | 男 |
| 03 | Aria | 女 |
| 04 | Lucas | 女 |
| 05 | Oliver | 男 |
| 06 | Caden | 男 |
| 07 | Lily | 女 |
| 08 | Jacob | 男 |
course表數據:
| 01 | Chinese | 02 |
| 02 | Math | 01 |
| 03 | English | 03 |
teacher表數據:
| 01 | 張三 |
| 02 | 李四 |
| 03 | 王五 |
score表部分數據:
| 01 | 01 | 80 |
| 01 | 02 | 90 |
| 01 | 03 | 99 |
| 02 | 01 | 70 |
| ... | ... | ... |
二、編程要求
根據提示,在Begin - End區域內進行代碼補充。
三、預期輸出:
?四、代碼
########## Begin ########## select a.*,b.s_score,b.c_id,c.c_name from student a INNER JOIN score b ON a.s_id = b.s_id INNER JOIN course c ON b.c_id=c.c_id where b.c_id=(select c_id from course c,teacher d where c.t_id=d.t_id and d.t_name='張三') and b.s_score in (select MAX(s_score)from score where c_id='02');########## End ##########第5關 查詢兩門課程不及格同學信息?
一、本關任務:根據提供的表和數據,查詢兩門及其以上不及格課程的同學的學號(s_id)、姓名(s_name)及其平均成績(avg_score),要求計算平均成績后為整數。
student表數據:
| 01 | Mia | 女 |
| 02 | Riley | 男 |
| 03 | Aria | 女 |
| 04 | Lucas | 女 |
| 05 | Oliver | 男 |
| 06 | Caden | 男 |
| 07 | Lily | 女 |
| 08 | Jacob | 男 |
course表數據:
| 01 | Chinese | 02 |
| 02 | Math | 01 |
| 03 | English | 03 |
teacher表數據:
| 01 | 張三 |
| 02 | 李四 |
| 03 | 王五 |
score表部分數據:
| 01 | 01 | 80 |
| 01 | 02 | 90 |
| 01 | 03 | 99 |
| 02 | 01 | 70 |
| ... | ... | ... |
二、編程要求
根據提示,在Begin - End區域內進行代碼補充。
三、預期輸出:
?四、代碼
########## Begin ########## select a.s_id,a.s_name,ROUND(AVG(b.s_score))avg_score from student a INNER JOIN score b ON a.s_id=b.s_id where a.s_id in (select s_id from score where s_score<60 GROUP BY s_id having count(*)>=2) GROUP BY a.s_id,a.s_name;########## End ##########總結
以上是生活随笔為你收集整理的MySQL数据库——复杂查询(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: React项目案例-影视资源网站
- 下一篇: 中国联通GPON/4+1+WiFi(2.