1.在某个学校的一个微型班级中,有4个表记录着老师与学生的情况,利用大数据技术进行一定处理,方便老师分析自身的教学质量及学生的学习情况,分析是student表,score表,course表和teacher表。 student表4个数据字段,分别为s_id,s_name,s_birth和s_sex。 score表中3个数据字段,分别为s_id,c_id和s_score。 course表有3个数据字段,分别表示c_id,c_name和t_id。 teacher表有2个数据字段,分别为t_id和t_name。 为了分析老师的教学质量,请根据score表、course表、teacher表的数据, 1.查询不同老师所教不同课程的平均分。 2.查询所有学生的学号,姓名,选课总数和所有课程的总成绩 3.查询课程名为“数学”,且分数低于60的学生姓名和分数。 4.查询学生的平均成绩及名次。
时间: 2023-06-09 13:05:14 浏览: 262
微型四轴源码与地面站技术资料.7z
1. 查询不同老师所教不同课程的平均分:
SELECT t.t_name, c.c_name, AVG(s.s_score) FROM teacher AS t
JOIN course AS c ON t.t_id = c.t_id
JOIN score AS s ON c.c_id = s.c_id
GROUP BY t.t_name, c.c_name;
2. 查询所有学生的学号,姓名,选课总数和所有课程的总成绩:
SELECT s.s_id, s.s_name, COUNT(s.s_id) AS total_courses, SUM(s.s_score) AS total_score
FROM student AS s
JOIN score AS sc ON s.s_id = sc.s_id
GROUP BY s.s_id, s.s_name;
3. 查询课程名为“数学”,且分数低于60的学生姓名和分数:
SELECT s.s_name, sc.s_score
FROM student AS s
JOIN score AS sc ON s.s_id = sc.s_id
JOIN course AS c ON sc.c_id = c.c_id
WHERE c.c_name = '数学' AND sc.s_score < 60;
4. 查询学生的平均成绩及名次:
SELECT s.s_name, AVG(sc.s_score) AS average_score,
(SELECT COUNT(*)+1 FROM (SELECT AVG(s_score) AS sub_average FROM score GROUP BY s_id) AS temp WHERE temp.sub_average > AVG(sc.s_score)) AS rank
FROM student AS s
JOIN score AS sc ON s.s_id = sc.s_id
GROUP BY s.s_name;
阅读全文