题解 | #试卷发布当天作答人数和平均分#
试卷发布当天作答人数和平均分
https://www.nowcoder.com/practice/5b58e89556dc4153a79d8cf8c08ba499
/* 首先,从examination_info表中选择tag为"SQL"的记录,并提取exam_id和release_time字段的日期部分(使用DATE(release_time))。 然后,从user_info表中选择level大于5的用户的uid。 接下来,从exam_record表中选择exam_id和uid,并计算每个考试的独立用户数(uv)和平均分(avg_score),同时使用IN子查询过滤符合条件的记录: exam_id存在于第一步中选择的exam_id中。 uid存在于第二步中选择的uid中。 最后,按照独立用户数(uv)降序排序,如果独立用户数相同,则按照平均分(avg_score)升序排序,以获取最终结果。 */ SELECT exam_id, count(DISTINCT uid) AS uv, ROUND(avg(score), 1) AS avg_score FROM exam_record WHERE (exam_id, DATE (start_time)) IN ( SELECT exam_id, DATE (release_time) FROM examination_info WHERE tag = "SQL" ) AND uid IN ( SELECT uid FROM user_info WHERE `level` > 5 ) GROUP BY exam_id ORDER BY uv DESC, avg_score ASC;