题解 | #统计作答次数#

统计作答次数

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

SQL15 统计作答次数

题目主要信息:

  • 从试卷作答记录表中统计出总作答次数total_pv、试卷已完成作答数complete_pv、已完成的试卷数complete_exam_cnt

问题拆分:

  • 从数据表格中选择三项输出。知识点:select ... from ...
  • 第一项是选择总的作答次数,这个表格因为只要有一次作答id就会自增,因此统计id的总和。知识点:count()
  • 第二项是选择试卷完成的作答数,只要完成就会有分数,否则为null,因此可以记录所有分数中不为null出现的次数:
    • 用if判断是否为null,为null得0,否则得1。知识点:if(判断,参数1,参数2)
    • 用sum将if的结果相加就是不为得分null出现的次数。知识点:sum()
  • 第三项是被完成的试卷数,用exam_id区分,即统计得分不为null的情况下不同的exam_id有多少。知识点:count()、distinct

代码:

select count(id) as total_pv,
       sum(if(score is null, 0, 1)) as complete_pv,
       count(distinct exam_id and score is not null) as complete_exam_cnt
from exam_record
孤帆远影碧空尽 文章被收录于专栏

牛客网各类题单题解~

全部评论

相关推荐

评论
点赞
2
分享

创作者周榜

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