子查询;窗口函数row_number over(partition by order by);round;MySQL面试题18/19

本文介绍了两道MySQL面试题目,涉及子查询、窗口函数row_number() over(partition by order by)以及数据统计。第一题展示了如何查询各科成绩的最高分、最低分、平均分及不同等级的通过率。第二题演示了如何按成绩排序并显示排名,重点讲解了ROW_NUMBER()函数的使用和与GROUP BY的区别。
摘要由CSDN通过智能技术生成

子查询;窗口函数row_number over(partition by order by);round;
MySQL面试题18/19

18.查询各科成绩最高分、最低分和平均分:以如下形式显示:课程ID,课程name,最高分,最低分,平均分,及格率,中等率,优良率,优秀率,及格为>=60,中等为:70-80,优良为:80-90,优秀为:>=90(重要!)

select a.c_id,a.c_name,
MAX(s_score),MIN(s_score),AVG(s_score),
sum(case when b.s_score >= 60 then 1 else 0 end)/count(s_id) as ‘及格率’,
sum(case when b.s_score>80 and b.s_score<90 then 1 else 0 end)/count(s_id) as ‘优良率’,
sum(case when b.s_score>70 and b.s_score<80 then 1 else 0 end)/count(s_id) as ‘中等率’,
sum(case when b.s_score > 90 then 1 else 0 end)/count(s_id) as ‘优秀率’
from
course as a
inner join
score as b
on a.c_id=b.c_id

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值