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

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

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

SELECT b.exam_id exam_id, 
    COUNT(DISTINCT uid) uv, 
    ROUND(AVG(score), 1) avg_score
FROM exam_record c 
    JOIN user_info a USING(uid)
    JOIN examination_info b USING(exam_id)
WHERE level > 5 AND tag = 'SQL' AND LEFT(start_time,11) = LEFT(submit_time, 11)
	# DATE_FORMAT(release_time,'%Y%MYD')=DATE_FORMAT(submit_time,'%Y%MYD'))
GROUP BY(exam_id)
ORDER BY uv DESC, avg_score ASC

要找题目id,作答人数,平均分

首先观察表,发现三个表,由一个中间表c连接,所以先链接三个表,对应4,5,6行

然后看限制条件,等级为5、tag是SQL,当天 对应7行

再在选择部分使用聚合函数,因为题目id没有用聚合函数,所以需要在后面使用分组函数

最后再使用排序语句

踩的坑,没有理解好题意,是人数,我最开始理解成次数了,老是错误。

sql'还是偏重业务

同时判断是否当天也看到了一个很优雅的写法,我直接截断的字符串

全部评论

相关推荐

06-23 11:28
门头沟学院 Java
牛客91966197...:也有可能是点拒绝的时候自动弹的话术
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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