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

经典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;

http://www.lryc.cn/news/2391731.html

相关文章:

  • ubuntu 22.04安装k8s高可用集群
  • 使用java实现word转pdf,html以及rtf转word,pdf,html
  • 使用LSTM进行时间序列分析
  • 【密码学——基础理论与应用】李子臣编著 第十三章 数字签名 课后习题
  • k8s中kubeSphere的安装使用+阿里云私有镜像仓库配置完整步骤
  • Agilent安捷伦Cary3500 UV vis光谱仪Cary60分光光度计Cary1003004000500060007000 UV visible
  • JSON解析性能优化全攻略:协程调度器选择与线程池饥饿解决方案
  • arcgis js 4.x 的geometryEngine计算距离、面积、缓冲区等报错、失败
  • vSphere 7.0 client 提示HTTP状态 500- 内部服务器错误
  • 用 Python 打造你的专属虚拟试衣间!——AI+AR 如何改变时尚体验
  • Java与Flutter集成开发跨平台应用:从核心概念到生产实践
  • SpringAI 大模型应用开发篇-纯 Prompt 开发(舔狗模拟器)、Function Calling(智能客服)、RAG (知识库 ChatPDF)
  • 微信小程序的软件测试用例编写指南及示例--性能测试用例
  • Unsupervised Learning-Word Embedding
  • 远控安全进阶之战:TeamViewer/ToDesk/向日葵设备安全策略对比
  • 变量的计算
  • 深入了解linux系统—— 库的制作和使用
  • Java中的设计模式:单例模式的深入探讨
  • View的工作流程——measure
  • 【系统架构设计师】2025年上半年真题论文回忆版: 论软件测试方法及应用(包括解题思路和参考素材)
  • 《软件工程》第 13 章 - 软件维护
  • 2024 CKA模拟系统制作 | Step-By-Step | 12、创建多容器Pod
  • python:selenium爬取网站信息
  • Nginx版本平滑迁移方案
  • WPF 按钮悬停动画效果实现
  • 满天星之canvas实现【canvas】
  • 我在架构师面前谈 Spring Inner Beans,他直接点头说:这人有料!
  • Java无序数组 vs 有序数组:性能对比与选型指南
  • 【Linux 基础知识系列】第二篇-Linux 发行版概述
  • 【开源解析】基于PyQt5+Folium的谷歌地图应用开发:从入门到实战