题解 | #统计作答次数#

统计作答次数

https://www.nowcoder.com/practice/45a87639110841b6950ef6a12d20175f

select
    count(start_time) as total_pv,
    count(submit_time) as complete_pv,
    count(distinct if(submit_time is not null, exam_id, null)) as complete_exam_cnt
from exam_record

题目:有一个试卷作答记录表exam_record,请从中统计出总作答次数total_pv、试卷已完成作答数complete_pv、已完成的试卷数complete_exam_cnt。

总作答次数:有几个开始时间

已完成作答次数:有几个提交时间

已完成的试卷数,即完成了哪些卷子。

注意:中途退出的为未完成状态,其交卷时间和份数为NULL。

重点:已完成试卷数(complete_exam_cnt):count(distinct【考虑一种卷子很多人做的情况需要数据去重】if(submit_time is not null,exam_id,null) 如果提交时间非空,则为已完成状态,返回卷子ID,进入count计算;若为空值,则为未完成状态,返回空值,不进入计算。

疑点:这里我先用了select子查询求完成卷子的列,再结合count函数计算,但是是错误的。count(select distinct exam_id from exam_record where submi_time is not null) 不知道为什么,经常出现这样的问题,难道是聚合函数不能和子查询一起用吗?

全部评论

相关推荐

来个大佬救一下,为上投了都是石沉大海了,没实习经历的话怕秋招直接进不了面。什么实习这么难找,基本
心态爆炸了:现在正式的岗位都少,实习基本不咋招的,除了大厂,中小企业其实没那么多岗位需求,就算是有,大多都是招一两个廉价劳动力,同时,他们也会希望你一来就能干活的,没时间培训你,就让你了解公司的项目,你了解完就可以开始干活。再者是,很多低质量的实习其实用处没有那么大的。我去年也是找实习找到破防,最后去了一家深圳的小公司实习,工作对我来说很简单,甚至不如我在学校做的项目,秋招的时候,这段实习经历也并没有帮上什么忙,投递简历,依旧非常低的回复率。低回复率是常态,尤其是找实习,找不到,那就把重心放在优化自己的简历和项目,多看八股文,锻炼自己的面试能力,多看别人的面经,自己模拟面试,等秋招的时候,只要有那么寥寥几次,好好抓住那几次机会。
点赞 评论 收藏
分享
06-18 13:28
已编辑
门头沟学院 Web前端
爱睡觉的冰箱哥:《给予你300的工资》,阴的没边了
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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