题解 | #满足条件的用户的试卷完成数和题目练习数#

满足条件的用户的试卷完成数和题目练习数

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

这道题实际可以拆解为两道类似的题目,只要理解了其中的一道,问题就解决了。其中一道是:请你找到高难度SQL试卷得分平均值大于80并且是7级的红名大佬,统计他们的2021年试卷总完成次数;
另一道是:请你找到高难度SQL试卷得分平均值大于80并且是7级的红名大佬,统计他们的2021年题目总练习次数。将上述两道题目分别查询出来后再进行join连接即可。
此题存在如下一些考察点:
多表连接、子查询、分组聚合,还包括一些常见函数的考察,包括ifnull函数、year()年份提取函数等,下面结合代码进行注解:
select
  s1.uid,
  exam_cnt,
  ifnull(question_cnt, 0)  //  ④ 查询指标 : 由于题目练习量可能为空,因此采用ifnull函数取练习量为空时为0
from
  (
    select
      t1.uid uid,
      count(distinct t2.exam_id) exam_cnt
    from   //  ① 表连接
      exam_record t1
      left join examination_info t2 on t1.exam_id = t2.exam_id
      left join user_info t3 on t1.uid = t3.uid
    where
      t1.uid in (     //   ② 子查询:查询高难度SQL试卷得分平均值大于80并且是7级的红名大佬         select
          t1.uid     
        from
          exam_record t1
          left join examination_info t2 on t1.exam_id = t2.exam_id
          left join user_info t3 on t1.uid = t3.uid
        where
          level = 7
          and difficulty = "hard"
          and tag = "SQL"
        group by
          t1.uid
        having
          avg(score) > 80
      )  
      and year(submit_time) = "2021"   //  ② 仅查询2021年的作答信息
    group by   //  ③ 分组查询
      t1.uid
  ) s1
************* 上述部分为第一道题目,下述为第二道题目 ******************
    left join (
    select
      uid,
      count(question_id) question_cnt
    from
      practice_record
    where
      uid in (    //   ① 子查询:查询高难度SQL试卷得分平均值大于80并且是7级的红名大佬
        select
          a1.uid
        from
          exam_record a1
          left join examination_info a2 on a1.exam_id = a2.exam_id
          left join user_info a3 on a1.uid = a3.uid
        where
          level = 7
          and difficulty = "hard"
          and tag = "SQL"
        group by
          a1.uid
        having
          avg(score) > 80
      )
      and year(submit_time) = "2021"   //  ② 仅查询2021年的信息
    group by   //  ③ 分组查询
      uid
  ) s2 on s1.uid = s2.uid
order by
  exam_cnt asc,    //  ⑤ 按作答问卷数量升序,按题目练习量降序
  question_cnt desc



全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
# 春招至今,你的战绩如何? #
11136次浏览 95人参与
# 你的实习产出是真实的还是包装的? #
1966次浏览 42人参与
# 米连集团26产品管培生项目 #
6043次浏览 216人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
7655次浏览 43人参与
# 简历第一个项目做什么 #
31756次浏览 341人参与
# 重来一次,我还会选择这个专业吗 #
433569次浏览 3926人参与
# 巨人网络春招 #
11380次浏览 223人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
187228次浏览 1122人参与
# 牛客AI文生图 #
21453次浏览 238人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
152469次浏览 888人参与
# 研究所笔面经互助 #
118974次浏览 577人参与
# 简历中的项目经历要怎么写? #
310384次浏览 4219人参与
# AI时代,哪些岗位最容易被淘汰 #
63881次浏览 828人参与
# 面试紧张时你会有什么表现? #
30517次浏览 188人参与
# 你今年的平均薪资是多少? #
213153次浏览 1039人参与
# 你怎么看待AI面试 #
180172次浏览 1258人参与
# 高学历就一定能找到好工作吗? #
64339次浏览 620人参与
# 你最满意的offer薪资是哪家公司? #
76551次浏览 374人参与
# 我的求职精神状态 #
448150次浏览 3129人参与
# 正在春招的你,也参与了去年秋招吗? #
363543次浏览 2638人参与
# 腾讯音乐求职进展汇总 #
160685次浏览 1112人参与
# 校招笔试 #
471261次浏览 2964人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务