题解 | #统计每个学校各难度的用户平均刷题数#
统计每个学校各难度的用户平均刷题数
http://www.nowcoder.com/practice/5400df085a034f88b2e17941ab338ee8
要求
统计每个学校各难度的用户平均刷题数
思路
- 每个学校:group by university
- 各难度: group by difficult_level
- 的用户:user_profile inner join question_practice_detail
- 平均刷题数: count(qp.result)/ COUNT(distinct qp.device_id)
难点
这里要用到多表关联,需要用到两个join。 做之前要理清思路,以免用错join。(left,inner应该都能用,就是写的时候要注意表的前后顺序)
实现
select up.university,qd.difficult_level, count(qp.result)/ COUNT(distinct qp.device_id) as avg_answer_cnt
from (user_profile as up
INNER JOIN question_practice_detail as qp
on up.device_id = qp.device_id)
inner join question_detail as qd
on qp.question_id = qd.question_id
group by university,difficult_level