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

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

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

明确题意:

统计每个题目和每份试卷被作答的人数和次数,分别在试卷区和题目区按uv & pv降序显示

问题拆解:

  • 本题主要是考察知识点:group by、count(distinct )等
  • uv = count(distinct uid)
  • pv =  count(uid)
  • 注意order by后不能直接union all,会报错。要用子表,然后再union all!!

代码实现:

select * 
from (
select
exam_id as tid,
count(distinct uid) as uv,
count(*) as pv
from
exam_record 
group by exam_id 
order by uv desc ,pv desc  -- order by 后不能直接union all 会报错,
)t1  -- 这里要用一个子表
union all  -- 不会去重
select * from 
(
select
question_id, -- 这里虽然不是tid,但会以第一个表的tid字段名为准显示出来,代码不会报错!!
count(distinct uid) as uv,
count(*) as pv
from
practice_record 
group by question_id 
order by uv desc ,pv desc 
)t2 ; -- 这里要用一个子表
不足之处,欢迎指正

全部评论

相关推荐

野猪不是猪🐗:现在的环境就是这样,供远大于求。 以前卡学历,现在最高学历不够卡了,还要卡第一学历。 还是不够筛,于是还要求得有实习、不能有gap等等... 可能这个岗位总共就一个hc,筛到最后还是有十几个人满足这些要求。他们都非常优秀,各方面都很棒。 那没办法了,看那个顺眼选哪个呗。 很残酷,也很现实
点赞 评论 收藏
分享
勤奋努力的椰子这就开摆:这些经历跟硬件都没啥关系呀
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务