题解 | #0级用户高难度试卷的平均用时和平均得分#

0级用户高难度试卷的平均用时和平均得分

https://www.nowcoder.com/practice/bb474c6cbd77478fb6d9fc86934d0ebb

select 
u.uid as uid,
round(avg(if(r.score is null,0,r.score)),0) as avg_score,
round(avg(if(r.submit_time is null,duration,TIMESTAMPDIFF(minute,start_time,submit_time))),1) as avg_time_took  
from 
user_info as u #表1
left join 
exam_record as r #表3
on u.uid=r.uid 
left join 
examination_info as e #表2
on r.exam_id=e.exam_id 
where u.level=0 and e.difficulty='hard' 
group by u.uid 
# round(avg(if(r.score is null,0,r.score)),0)

# 考核知识点(难点):聚合函数的叠加使用

# round(avg(if(r.score is null,0,r.score)),0)

# ceil是向上取整,floor是向下取整,这两个都可以

# ceil(avg(if(r.score is null,0,r.score)))

# floor(avg(if(r.score is null,0,r.score)))

# 另一个难点是:时间函数的使用

# timestampdiff(minute,submit_time,start_time),前面中的duration只是一个返回条件,不满足时则返回这个条件值

# TIMESTAMPDIFF函数用于计算两个日期的时间差,minute是以分钟的形式

# TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)

注:以上笔记内容仅为个人认为的难点,仅供自己记录,如有题友有不同的见解,欢迎,还请大家多多指教

全部评论

相关推荐

07-08 13:48
门头沟学院 C++
点赞 评论 收藏
分享
门口唉提是地铁杀:之前b站被一个游戏demo深深的吸引了。看up主页发现是个初创公司,而且还在招人,也是一天60。二面的时候要我做一个登录验证和传输文件两个微服务,做完要我推到github仓库,还要我加上jaeger和一堆运维工具做性能测试并且面试的时候投屏演示。我傻乎乎的做完以后人家跟我说一句现在暂时不招人,1分钱没拿到全是白干
你的秋招第一场笔试是哪家
点赞 评论 收藏
分享
06-25 09:33
厦门大学 Java
程序员饺子:现在日常估计没啥hc了,等到八月多估计就慢慢有了。双九✌🏻不用焦虑的
投递快手等公司7个岗位
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 12:11
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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