sql面试题(一)
牛客后台会记录每个用户的试卷作答记录到exam_record表,现在有两个用户的作答记录详情如下: 用户1001在9月1日晚上10点11分12秒开始作答试卷9001,并在50分钟后提交,得了90分;用户1002在9月4日上午7点1分2秒开始作答试卷9002,并在10分钟后退出了平台。试卷作答记录表exam_record中,表已建好,其结构如下,请用一条语句将这两条记录插入表中。
insert into exam_record(uid,exam_id,start_time,submit_time,score) values(1001,9001,'-09-01 22:11:12','-09-01 23:01:12',90),(1002,9002,'-09-04 07:01:02','-09-04 07:11:02',null);
现有一张试卷作答记录表exam_record,结构如下表,其中包含多年来的用户作答试卷记录,由于数据越来越多,维护难度越来越大,需要对数据表内容做精简,历史数据做备份。
表exam_record:
我们已经创建了一张新表exam_record_before_用来备份之前的试题作答记录,结构和exam_record表一致,请将之前的已完成了的试题作答纪录导入到该表。
insert into exam_record_before_select null,uid,exam_id,start_time,submit_time,score from exam_record where year(submit_time)<;
现在有一套ID为9003的高难度SQL试卷,时长为一个半小时,请你将 -01-01 00:00:00 作为发布时间插入到试题信息表examination_info(其表结构如下图),不管该ID试卷是否存在,都要插入成功,请尝试插入它。
试题信息表examination_info:
replace into examination_info value(null,9003,'SQL','hard',90,'-01-01 00:00:00');
牛客的运营同学想要查看大家在SQL类别中高难度试卷的得分情况。
请你帮她从exam_record数据表中计算所有用户完成SQL类别高难度试卷得分的截断平均值(去掉一个最大值和一个最小值后的平均值)。
示例数据:examination_info(exam_id试卷ID, tag试卷类别, difficulty试卷难度, duration考试时长, release_time发布时间)
示例数据:exam_record(uid用户ID, exam_id试卷ID, start_time开始作答时间, submit_time交卷时间, score得分)
根据输入你的查询结果如下:
从examination_info表可知,试卷9001为高难度SQL试卷,该试卷被作答的得分有[80,81,84,90,50],去除最高分和最低分后为[80,81,84],平均分为81.6666667,保留一位小数后为81.7
select tag,difficulty,ROUND((sum(score)-max(score)-min(score))/(COUNT(score)-2),1) clip_avg_scorefromexamination_infoJOINexam_recordusing(exam_id)where tag='SQL' and difficulty='hard';
如果觉得《大数据开发工程师之SQL面试题(一)》对你有帮助,请点赞、收藏,并留下你的观点哦!