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

# 首先看需要哪些列 exam_id ,作答人数,平均分
# 限制为SQL类型的试卷  按exam_id 进行分组
# 对uid进行限制  5级以上  SQL发布当天的作答
select exam_id, COUNT(distinct er.uid) AS uv,
ROUND(AVG(er.score),1) AS avg_score
FROM user_info AS ui
JOIN exam_record AS er using(uid)
JOIN examination_info AS ei using(exam_id)
WHERE 
    ei.tag = 'SQL'  
    AND #等级限制
    ui.level > 5
    AND #SQL发布当天的作答的用户
    date_format(ei.release_time,'%Y%m%d') = date_format(er.submit_time,'%Y%m%d')

GROUP BY exam_id
ORDER BY uv DESC,avg_score


# 子查询 
# 首先看需要哪些列 exam_id ,作答人数,平均分 
# 限制为SQL类型的试卷  按exam_id 进行分组 
# 对uid进行限制  5级以上  对时间限制 SQL发布当天的作答  
select exam_id,COUNT(distinct uid) AS uv,
ROUND(AVG(score), 1) AS avg_score
FROM exam_record
WHERE uid in(
    select uid FROM user_info
    WHERE level > 5 
) AND exam_id in (
    select exam_id FROM examination_info
    WHERE tag = 'SQL' 
)
AND date_format(start_time,'%Y%m%d') in (
    select date_format(release_time,'%Y%m%d')
    FROM examination_info
    WHERE tag = 'SQL' 
)
GROUP BY exam_id
ORDER BY uv DESC, avg_score ASC 


全部评论

相关推荐

点赞 评论 收藏
分享
高斯林的信徒:武大简历挂?我勒个骚岗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务