题解 | #每个题目和每份试卷被作答的人数和次数#

每个题目和每份试卷被作答的人数和次数

https://www.nowcoder.com/practice/203d0aed8928429a8978185d9a03babc

本题考察点包括两表纵向连接、分表排序,这道题最后的分表排序是参考其他答主完成的,但是感觉逻辑不是很准确,待解释完下列代码后po出疑问。
(select
    distinct exam_id tid,
    count(distinct uid) uv,
    count(uid) pv
  from
    exam_record
  group by
    tid)   //  ① 首先从作答记录表按试卷ID进行分组聚合查询
union  //  ③ 使用union进行两表连接,连接前需要保证各个字段名称相同
(select
    distinct question_id tid,
    count(distinct uid) uv,
    count(uid) pv
  from
    practice_record
  group by
    tid)  //  ② 其次采用类似的操作从练习表按题目ID进行分组聚合查询
order by
  left(tid, 1) desc,  //  按uv、pv降序排列
  uv desc,
  pv desc
一个问题:如果试卷ID与题目ID是交错的,那么使用left(tid, 1) desc的方式显然是行不通的,此时应如何达到现有的排序要求?


全部评论

相关推荐

想进开水团喝开水:哦 给我一个 就算你真拿到牛友也会为你开心的
点赞 评论 收藏
分享
友友们,我实在是不太明白,校招的话现在大多也是提前实习,然后转正也是需要考核的,考核通过才能转正,那这跟实习转正有什么区别啊
苦闷的仰泳鲈鱼刷了1...:提前实习,是让你提前熟悉业务的,后续是入职后可以减少试用期的(大部分是包入职的);转正实习,要是hc不够或者其他原因,让你正式offer可能都没有,这个风险很大。 ---个人看法和了解到的。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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