为了账号安全,请及时绑定邮箱和手机立即绑定

SQL 求两张表平均的题

SQL 求两张表平均的题

12345678_0001 2018-10-24 19:30:33
现有学生表和成绩表 学生表(t_student)有学生id(id),学生姓名(name),性别字段(sex) 成绩表(t_score)有成绩id(id),学生id(student_id),学科id(item_id)和成绩字段(score)。 请通过sql查找出每个学生所有学科的平均分和最高分和最低分
查看完整描述

1 回答

?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

建2张表:
student 学生表:
CREATE TABLE student (
id int(11) unsigned NOT NULL AUTO_INCREMENT,
name varchar(255) NOT NULL,
sex tinyint(3) NOT NULL DEFAULT '0',
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4;

id name sex
1 aaa 0
2 bbb 0
3 ccc 1
4 ddd 1
5 eee 0

score 分数表:

CREATE TABLE student (
id int(11) unsigned NOT NULL AUTO_INCREMENT,
name varchar(255) NOT NULL,
sex tinyint(3) NOT NULL DEFAULT '0',
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4;

id s_id item_id score
1 1 1 56
2 1 2 52
3 1 3 29
4 2 1 52
5 2 2 61
6 2 3 62
7 3 1 63
8 3 2 74
9 3 3 52
10 4 1 83
11 4 2 62
12 4 3 93
13 5 1 42
14 5 2 52
25 5 3 83

sql语句:

每个学生所有学科的总分,平均分,最高,最低。
SELECT SUM(score), AVG(score),MAX(score),MIN(score) ,s.s_id ,u.namefrom score s LEFT JOIN student u
ON s.s_id = u.id
group by s.s_id;

每个学科的总分,平均分,最高,最低。
SELECT SUM(score), AVG(score),MAX(score),MIN(score) ,s.item_id from score s 
group by s.item_id;


查看完整回答
反对 回复 2018-10-24
  • 1 回答
  • 0 关注
  • 855 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信