10-14 查询平均成绩高于75分的学生(MSSQL)

本题目要求编写SQL语句,在sc表 中查询平均成绩高于75分的学生。

提示:MSSQLServer 评测SQL语句。

表结构:

定义表结构的SQL语句如

-- 学生选课成绩表
CREATE TABLE  sc  (  
   sno  char(4) NOT NULL,
   cno  char(4) NOT NULL,
   grade  decimal(4,1) DEFAULT NULL,
  PRIMARY KEY ( sno , cno )
)
 

表样例

请在这里给出上述表结构对应的表样例。例如

sc表:

sc.JPG

输出样例:

请在这里给出输出样例。例如

l210.JPG

 思路:

1.使用group by语句按照sno分组

2.使用having对平均成绩大于75的进行筛选

select sno as 学号,avg(grade) as 平均成绩
from sc
group by sno
having avg(grade)>75

### PTA 10-27 筛选平均成绩大于75学生的解决方案 以下是实现该功能的一种方法,通过输入学生数据并计算其平均成绩来筛选符合条件的学生: #### 输入与处理逻辑 程序首先读取若干组学生成绩的数据,每组数据包含多个科目的数。接着计算每位学生平均成绩,并判断是否超过75。如果满足条件,则将其姓名和平均成绩输出。 ```python students = [] n = int(input("请输入学生数量: ")) # 假设先输入学生总数 for _ in range(n): data = input().split() # 每次输入一行数据,格式为:名字 成绩1 成绩2 ... name = data[0] scores = list(map(float, data[1:])) # 将剩余部转换成浮点数列 avg_score = sum(scores) / len(scores) if avg_score > 75: students.append((name, round(avg_score, 2))) # 保留两位小数 # 输出结果 if not students: print("No student has an average score greater than 75.") else: for name, avg in students: print(f"{name} {avg}") ``` 上述代码实现了对学生数据的录入、平均成绩计算以及筛选的功能[^1]。 #### 关键点说明 - **输入格式**:假设每次输入一行数据,第一项为学生的名字,后续各项为其各科目成绩。 - **边界情况**:当没有任何学生平均成绩超过75时,应输出提示信息“No student has an average score greater than 75.”。 - **精度控制**:为了便于阅读,最终输出的平均成绩被四舍五入到小数点后两位。 此算法的时间复杂度主要取决于输入的学生人数 \( n \),对于每一行数据的操作均为线性时间完成,因此整体效率较高。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

THK-J

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值