当前位置: 首页 > news >正文

经典SQL查询问题的练习第一天

首先有三张表,学生表、课程表、成绩表

student:studentId,studentName;

course:courseId,courseName,teacher;

score:score,studentId,courseId;

接着有以下几道题目:

①查询课程编号为‘0006’的总成绩:

首先总成绩,使用Sum(score), 接着根据课程编号:courseId

成绩只有score表里面有,同时还能获取到另一个必要条件,因此只需一个表

SELECT SUM(score) FROM score WHERE courseId='0006';

②查询选了课程编号为'0006'的学生人数:

又要有课程编号,又要有学生人数,这里仅仅需要score表就行了,使用条件courseId(进行选择)和studentId(获取学生人数)

SELECT COUNT(studentId) FROM score WHERE courseId='0006';

③查询各科成绩最高和最低分:

要获取最高和最低使用MAX()和MIN(),各科则需要按照课程Id(courseId)分组

SELECT courseId,MAX(score),MIN(score) FROM score GROUP BY courseId;

④查询每门课程被选修的学生人数:

每一门:说明要分组,GROUP BY(courseId),学生人数:COUNT(student)

SELECT courseId,COUNT(studentId) FROM score GROUP BY courseId;

⑤查询平均成绩大于60分的学生的学号

平均成绩:AVG(score),同时还要有学号studentId,同样使用score表,注意,有很多门课程求平均值,所以要按照学生分组,在以上基础上在做选择要60分以上的,使用HAVING

SELECT studentId,AVG(score) FROM score GROUP BY studentId HAVING AVG(score)>60;

⑥查询至少选修三门课程的学生学号

要有课程和学号,一个score表就够了,要想具体知道一个学生选修的课程数,同样需要按学生分组

SELECT studentId,COUNT(courseId) FROM score GROUP BY student HAVING COUNT(courseId) >=3;

⑦查询所有有过不及格成绩的学生的姓名(不重复)

查询姓名需要student表,不及格成绩的就同时要使用score表,这里则要两个表,使用studentId来连接,要求不重复则使用DISTINCT

SELECT DISTINCT studentName FROM student st LEFT JOIN score sc ON st.studentId=sc.studentId WHERE score <60;

⑧查询两门及以上课程不及格的学生姓名

SELECT studentName,COUNT(studentName) FROM student st LEFT JOIN  score sc ON st.studentId=sc.studentId  WHERE score < 60 GROUP BY studentName  HAVING COUNT(studentName)>=2;

相关文章:

  • C语言中野指针问题
  • 前端面试题-HTML篇
  • 「卫星百科」“绿色守卫”高分六号
  • 设计模式:观察者模式 - 实战
  • ElementUI表单验证指南
  • 如何让 Git 停止跟踪文件?停止后又如何恢复跟踪?
  • AU6815集成音频DSP的2x25W数字型ClaSS D音频功率放大器(替代TAS5805)
  • Docker部署项目无法访问,登录超时完整排查攻略
  • Triton推理服务器部署YOLOv8(onnxruntime后端和TensorRT后端)
  • 计算机网络全维度解析:架构协议、关键设备、安全机制与新兴技术深度融合
  • python里的NumPy算法
  • VSCode + GD32F407 构建烧录
  • Axure设计案例——科技感对比柱状图
  • React 编译器 RC
  • Java大师成长计划之第34天:开源项目参与与贡献指南
  • 已解决:.NetCore控制台程序(WebAPI)假死,程序挂起接口不通
  • R语言基础| 数据基本管理与操作
  • 【.net core】SkiaSharp 如何在Linux上实现
  • Axios 如何通过配置实现通过接口请求下载文件
  • docker运行centos提示Operation not permitted
  • 做招聘网站客户要发票怎么办/今日舆情热点
  • 如何注册免费网站/软文内容
  • 医院建设网站意义/东莞seo优化方案
  • Wordpress虚拟资源下载类主题/seo培训班
  • 与建设通相关的网站/软文兼职
  • 网页设计专业服务公司/网站seo策划