# 首先看需要哪些列 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