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

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'
全部评论

相关推荐

2024-12-21 18:48
西安邮电大学 C++
黑皮白袜臭脚体育生:按使用了什么技术解决了什么问题,优化了什么性能指标来写会更好另外宣传下自己的开源仿b站微服务项目,GitHub已经390star,牛客上有完整文档教程
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务