题解 | #试卷发布当天作答人数和平均分#
试卷发布当天作答人数和平均分
https://www.nowcoder.com/practice/5b58e89556dc4153a79d8cf8c08ba499
select distinct exam_record.exam_id, count(distinct user_info.uid) as uv, round(avg(score),1) as avg_score from exam_record inner join examination_info on exam_record.exam_id=examination_info.exam_id inner join user_info on user_info.uid=exam_record.uid where tag= 'SQL' and level>5 and date_format(start_time,'%Y-%m-%d')=date_format(release_time,'%Y-%m-%d') group by exam_id order by uv desc,avg_score asc
一开始计算人数搞错了,写的是sum(if(level>5,1,0)) ,错在重复计算uid,有的一定可能重复出现就被重复计数了。
看题解发现了一个表联接新用法,应该是:表1 inner join 表2 using(字段)