题解 | #试卷发布当天作答人数和平均分#

试卷发布当天作答人数和平均分

http://www.nowcoder.com/practice/5b58e89556dc4153a79d8cf8c08ba499

两次left join表连接

select exam_id,count(distinct ui.uid) as uv,round(avg(score),1) as avg_score
from exam_record
left join user_info ui using(uid)
left join examination_info using(exam_id)
where tag='SQL'
and level>5
and date_format(submit_time,'%Y%m%d')=date_format(release_time,'%Y%m%d')
group by exam_id
order by uv desc,avg_score
全部评论
date_format(submit_time,'%Y%m%d')=date_format(release_time,'%Y%m%d')加上这个条件也能对吗? 如果用户是在试卷发布第二天或者以后作答提交的那不是漏掉了吗?
点赞
送花
回复
分享
发布于 2022-02-07 17:18
题目看漏了,当天的记录不好意思,哈哈
点赞
送花
回复
分享
发布于 2022-02-07 17:22
秋招专场
校招火热招聘中
官网直投
我靠,你的做法和我是一样的,哈哈
点赞
送花
回复
分享
发布于 2022-02-10 11:27
用inner join行吗
点赞
送花
回复
分享
发布于 2022-03-25 16:56
这种解法对吗 ?如果数据给sql不只包含一套题,有多个发布日期,还能运行吗
点赞
送花
回复
分享
发布于 2022-05-17 17:04
select er.exam_id,count(distinct er.uid) uv,round(avg(er.score),1) avg_score from exam_record er left join examination_info ei on er.exam_id=ei.exam_id where ei.tag='SQL' and date_format(release_time,'%Y%m%d')=date_format(submit_time,'%Y%m%d') left join user_info u on u.uid=er.uid where u.level>5 group by er.exam_id order by uv desc,avg_score asc; 所以有人知道我的为什么不对吗
点赞
送花
回复
分享
发布于 2022-10-04 11:55 浙江
where后面是不是应该加一句and start_time > release_time呀,因为题目写了“试卷发布后”,万一有人在试卷发布当天且试卷发布前作答,应该排除下这种情况吧,虽然这道题不影响
点赞
送花
回复
分享
发布于 2022-10-20 09:04 湖北
select exam_id,count(distinct ui.uid) as uv,round(avg(score),1) as avg_score from exam_record left join user_info as ui using(uid) left join examination_info using(exam_id) where tag='SQL' and level>5 and date(submit_time)=date(release_time) group by exam_id order by uv desc,avg_score;
点赞
送花
回复
分享
发布于 2022-11-25 16:05 山西

相关推荐

37 1 评论
分享
牛客网
牛客企业服务