第3章 SQL 习题 - 3.2

本文介绍了如何使用SQL查询处理一个包含grade_points关系的问题,涉及学生ID为12345的成绩总和计算、GPA平均值以及所有学生的ID和等级分值平均值。内容包括创建grade_points表、数据验证以及针对不同查询的SQL语句展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

3.2 假设给你一个关系grade_points(grade, points),它提供从takes关系中用字母表示的成绩等级到数字表示的得分之间的转换。例如,‘A’等级可指定为对应于4分,‘A-’对应于3.7分,‘B+’对应于3.3分,‘B’对应于3分,等等。学生在某门课程(课程段)上所获得的等级分值被定义为该课程段的学分乘以该生得到的成绩所对应的数字表示的得分。

给定上述关系和我们的大学模式,用SQL写出下面的每个查询。为简单起见,可以假设没有任何takes元组在grade上取null值。

看到这,首先我们需要创建关系表grade_points,并且添加数据,执行如下sql:

create table grade_points(
	grade varchar(2),
	points numeric(2, 1) check (points >= 0),
	primary key (grade)
	);
insert into grade_points values('A', 4);insert into grade_points values('A-', 3.7);
insert into grade_points values('B+', 3.3);insert into grade_points values('B', 3);
insert into grade_points values('B-', 2.7);
insert into grade_points values('C+', 2.3);insert into grade_points values('C', 2);
insert into grade_points values('C-', 1.7);
insert into grade_points values('D+', 1.3);insert into grade_points values('D', 1);
insert into grade_points values('D-', 0.7)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值