这是一道面试题

题目照片--

CREATE DATABASE interview;

USE interview;

--学生表字段分别表示:学生ID,学生所属班级ID,学生名称
CREATE TABLE student (
std_id VARCHAR(30) PRIMARY KEY,
cls_id VARCHAR(30),
std_name VARCHAR(30),
CONSTRAINT cls_id_fk1 FOREIGN KEY(cls_id) REFERENCES class(cls_id)
)

--班级表字段分别表示:班级ID,班级名称
CREATE TABLE class (
cls_id VARCHAR(30) PRIMARY KEY,
cls_name VARCHAR(30)
)

--分数表字段分别表示:分数ID,学生ID,课程ID,
CREATE TABLE score (
s_id VARCHAR(30),
std_id VARCHAR(30),
t_id VARCHAR(30),
s_value INT,
CONSTRAINT std_id_fk1 FOREIGN KEY(std_id) REFERENCES student(std_id),
CONSTRAINT t_id_fk1 FOREIGN KEY(t_id) REFERENCES timetable(t_id)
)

--课程表字段分别表示:课程ID,课程名称
CREATE TABLE timetable (
t_id VARCHAR(30) PRIMARY KEY,
t_name VARCHAR(30)
)

DROP TABLE class;
DROP TABLE timetable;
DROP TABLE score;

INSERT INTO class (cls_id,cls_name) VALUES ('cls001','a');
INSERT INTO class (cls_id,cls_name) VALUES ('cls002','b');
INSERT INTO class (cls_id,cls_name) VALUES ('cls003','c');
INSERT INTO class (cls_id,cls_name) VALUES ('cls004','d');

INSERT INTO timetable (t_id,t_name) VALUES ('t001','语文');
INSERT INTO timetable (t_id,t_name) VALUES ('t002','数学');
INSERT INTO timetable (t_id,t_name) VALUES ('t003','英语');
INSERT INTO timetable (t_id,t_name) VALUES ('t004','化学');

INSERT INTO student (std_id,cls_id,std_name) VALUES ('std001','cls001','张三');
INSERT INTO student (std_id,cls_id,std_name) VALUES ('std002','cls001','李四');
INSERT INTO student (std_id,cls_id,std_name) VALUES ('std003','cls002','王五');
INSERT INTO student (std_id,cls_id,std_name) VALUES ('std004','cls003','小刘');
INSERT INTO student (std_id,cls_id,std_name) VALUES ('std005','cls004','大气');

INSERT INTO score (s_id,std_id,t_id,s_value) VALUES ('s001','std001','t001',23);
INSERT INTO score (s_id,std_id,t_id,s_value) VALUES ('s002','std001','t001',33);
INSERT INTO score (s_id,std_id,t_id,s_value) VALUES ('s003','std001','t002',59);
INSERT INTO score (s_id,std_id,t_id,s_value) VALUES ('s004','std002','t003',66);
INSERT INTO score (s_id,std_id,t_id,s_value) VALUES ('s005','std002','t004',72);
INSERT INTO score (s_id,std_id,t_id,s_value) VALUES ('s006','std003','t001',87);
INSERT INTO score (s_id,std_id,t_id,s_value) VALUES ('s007','std003','t002',99);
INSERT INTO score (s_id,std_id,t_id,s_value) VALUES ('s008','std004','t003',61);
INSERT INTO score (s_id,std_id,t_id,s_value) VALUES ('s009','std005','t004',94);
INSERT INTO score (s_id,std_id,t_id) VALUES ('s010','std005','t004');
INSERT INTO score (s_id,std_id,t_id,s_value) VALUES ('s011','std001','t003',86);
INSERT INTO score (s_id,std_id,t_id,s_value) VALUES ('s012','std002','t003',88);

SELECT * FROM class;
SELECT * FROM timetable;
SELECT * FROM student;
SELECT * FROM score;

----请查询某一科目分数大于85分的所有学生的名单,
----查询列包括 学生姓名,班级名称,大于等于85分的科目数,小于85(包含无成绩的)科目数;

SELECT student.std_name,class.cls_name,
SUM(CASE WHEN score.s_value>=85 THEN 1 ELSE 0 END) AS '大于等于85分的科目数',
SUM(CASE WHEN score.s_value>=85 THEN 0 ELSE 1 END) AS '小于85(包含无成绩的)科目数',timetable.t_name,COUNT(*)
FROM student,class,score,timetable
WHERE score.t_id=timetable.t_id
AND score.std_id=student.std_id
AND student.cls_id=class.cls_id
OR score.s_value=NULL
GROUP BY score.std_id

请查询某一科目分数大于85分的所有学生的名单相关推荐

  1. Mysql查询各门课程成绩大于85分的学生名单—纠正网上大部分文章的错误

    最近在面试中遇见一个Mysql面试题内容如下: 一张score表 中有如图所示数据,写出查询 所有成绩都大于85分的学生姓名的sql. 第一反应 所有成绩 根据name group by. 然后在mi ...

  2. mysql 查询每个科目分数大于80

    表 : stu CREATE TABLE `stu` (   `id` int NOT NULL AUTO_INCREMENT,   `name` varchar(255) DEFAULT NULL, ...

  3. 查询出每门课都大于85 分的学生姓名

    用一条SQL 语句 查询出每门课都大于85 分的学生姓名 name   course   score Mary    语文       87 Mary     数学       75 Jeky     ...

  4. 高级筛选英语或计算机分数大于85,WPS表格高级筛选分析学生成绩 -电脑资料

    考试结束班主任都要对学生的成绩进行一番分析,有时还需要复制总分比较高但某门课比较弱的学生全部成绩送给任课老师以便有针对性地进行辅导, 图1 一.列出总分不小于400分且数学课不大于85分的成绩表 先设 ...

  5. 数据库:一条sql语句查询每门课程都大于80分的学生姓名

    描述:已知student表有姓名-name,分数-grade,课程-course,它们多对多对多,一条sql语句查询每门课程都大于80分的学生姓名? 分析: ①每门课程,涉及到课程数量统计 SELEC ...

  6. 有一个班4个学生,5门课程①求第1门课程的平均分;②找出有两门以上课程不及格的学生,输出他们的学号和全部课程成绩及平均成绩;③找出平均成绩在90分以上或全部课程成绩在85分以上的学生分别编3个函数实

    有一个班4个学生,5门课程. ①求第1门课程的平均分; ②找出有两门以上课程不及格的学生,输出他们的学号和全部课程成绩及平均成绩; ③找出平均成绩在90分以上或全部课程成绩在85分以上的学生. 分别编 ...

  7. 从学生表中查询每门课都是80分以上的学生的学号与姓名。

    如果你想查询每门课都是80分以上的学生的学号与姓名,你可以使用以下的 SQL 查询语句: SELECT student_id, name FROM students WHERE NOT EXISTS ...

  8. mysql中嵌套查询分数大于70分的人数_MySQL查询练习题,自我解答版本

    #1.查询"01"课程比"02"课程成绩高的学生的信息及课程分数 SELECT c.*,a.s_score,b.s_score FROM score AS a, ...

  9. 高级筛选英语或计算机分数大于85,利用高级筛选功能筛选出语文或数学成绩大于等于80的所有记录...

    利用高级筛选功能筛选出语文或数学成绩大于等于80的所有记录 选择全部数据, 按语文成绩排序,删除低于80的行: 再按分别数学.英语排序删除相应行. 剩下的都满足. 只筛选三次,手动操作比输入 正则表达 ...

最新文章

  1. linux npm安装_手把手教你appium框架的搭建—linux
  2. windows下如何访问linux下的oracle数据库
  3. 操作系统(1-12)
  4. Web应用程序的简单插件系统
  5. 【原】两个时间相加的运算符重载实现
  6. centos6配置mysql远程访问_MariaDB 数据库配置 Navicat 程序远程访问权限
  7. nginx apache 服务器配置
  8. 如何使用Dojo的DatePicker控件制作联动日期选择器
  9. win centos php语法,linux(centos5.5)/windows下nginx开启phpinfo模式功能的配置方法分享
  10. 【sklearn第十八讲】神经网络模型
  11. 淘淘商城系列(一)—— 淘淘商城介绍(二)
  12. Java进制转换问题(详解)
  13. 查看电脑ip地址的命令Linux,怎么用ipconfig命令查看自己电脑的IP地址
  14. 使无效html代码,blockquote p css无效,让blockquote p不缩进的方法
  15. 开关电源初级和次级变压器之间的Y电容作用
  16. 大数据教学整套视频及源码
  17. vue中插值语法中v-for() of 与v-for() in 遍历对象数组的异同,以及for in for of在方法中遍历对象和数组的异同
  18. 在不更改word行距的情况下,完全显示公式。
  19. Java峰值和削峰_架构设计之流量削峰
  20. 04-python练习习题:身体指数BMI和圆周率

热门文章

  1. 小清新版js打砖块游戏
  2. 【Kotlin协程】基于RxJava项目的Coroutine改造
  3. 贝塞尔曲线(Bezier)之水波纹的手机充电动画效果(二)
  4. python实现手机通讯录_Python 结合MYSQL实现通讯录
  5. https://mp.weixin.qq.com/s/z9sEM1sSOY1wnKjaTiSOsg
  6. 闲鱼跳转源码+独立后台
  7. 集成电路技术类毕业论文文献有哪些?
  8. 手机中的RF射频芯片和基带芯片的区别和联系
  9. 核密度估计(KDE)原理及实现
  10. 这几个解压方法你值得拥有!