题解 | #平均成绩,课程信息#

alt

建表

CREATE TABLE `student` (
  `sid` int DEFAULT NULL,
  `sname` varchar(10) DEFAULT NULL,
  `sage` varchar(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

INSERT INTO `student` VALUES (1, 'ss', '1111');
INSERT INTO `student` VALUES (2, 'aa', '1111');
INSERT INTO `student` VALUES (3, 'cc', '1111');
INSERT INTO `student` VALUES (4, 'ee', '1111');
INSERT INTO `student` VALUES (5, 'dd', '1111');

CREATE TABLE `score` (
  `sid` int DEFAULT NULL,
  `cid` int DEFAULT NULL,
  `score` int DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

INSERT INTO `score` VALUES (1, 1, 60);
INSERT INTO `score` VALUES (1, 3, 80);
INSERT INTO `score` VALUES (2, 2, 30);
INSERT INTO `score` VALUES (2, 3, 60);
INSERT INTO `score` VALUES (3, 1, 10);
INSERT INTO `score` VALUES (3, 2, 20);
INSERT INTO `score` VALUES (3, 3, 60);
INSERT INTO `score` VALUES (4, 1, 80);
INSERT INTO `score` VALUES (4, 2, 60);
INSERT INTO `score` VALUES (4, 3, 60);
INSERT INTO `score` VALUES (5, 1, 70);
INSERT INTO `score` VALUES (5, 2, 60);
INSERT INTO `score` VALUES (5, 3, 60);

平均成绩

SELECT
	s.sid,
	s.sname,
	t.score 
FROM
	student AS s
	RIGHT JOIN ( SELECT sid, AVG( score ) AS score FROM score GROUP BY sid HAVING AVG( score ) >= 60 ) t ON s.sid = t.sid

课程信息

SELECT
	a.* 
FROM
	student a,
	score b,
	score c 
WHERE
	a.sid = b.sid 
	AND a.sid = c.sid 
	AND b.cid = '01' 
	AND c.cid = '02'
全部评论

相关推荐

06-28 22:48
已编辑
广东金融学院 Java
小浪_Coding:学院本+这俩项目不是buff叠满了嘛
点赞 评论 收藏
分享
05-07 17:58
门头沟学院 Java
wuwuwuoow:1.简历字体有些怪怪的,用啥写的? 2.Redis 一主二从为什么能解决双写一致性? 3.乐观锁指的是 SQL 层面的库存判断?比如 stock > 0。个人认为这种不算乐观锁,更像是乐观锁的思想,写 SQL 避免不了悲观锁的 4.奖项证书如果不是 ACM,说实话没什么必要写 5.逻辑过期时间为什么能解决缓存击穿问题?逻辑过期指的是什么 其实也没什么多大要改的。海投吧
简历中的项目经历要怎么写
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务