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

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

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

(1)条件:
1.试卷类别SQL:     tag='sql'  
2.试卷发布当天作答:  date_format(submit_time,'%Y%m%d')=date_format(release_time,'%Y%m%d')
(人有点傻,date()直接返回日期就好。。。)
3.五级以上用户:          ui.level>5
(2)查找值:
试卷ID:exam_id
作答人数:    count(distinct uid) 
平均分:        round(avg(score),1
这三个都可直接从同一张表exam_record 中查询到
(3)分组:按照题意一开始想的是按照试卷发布日期分组,最后感觉直接按照试卷id分组也是可以的
group by exam_id
(4)排序:
先按人数降序,再按平均分降序:order by uv desc ,avg_score
完整题解:
select exam_id,count(distinct uid) uv,round(avg(score),1) avg_score from exam_record er
where (exam_id,uid) in (
    select ei.exam_id,ui.uid from examination_info ei,exam_record er,user_info ui
    where tag='sql' and date_format(submit_time,'%Y%m%d')=date_format(release_time,'%Y%m%d'and ui.level>5
)
group by exam_id
order by uv desc ,avg_score;
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务