题意:
计算每个学校用户不同难度下的用户平均答题题目数情况
分解:
- 根据每个学校的用户,知 group by university
- 根据不同难度,知 group by difficult_level
- 根据用户平均答题题目数,知 count(q.question_id) / count(distinct(q.device_id))
- 共涉及到三张表 user_profile u,question_practice_detail q,question_detail qd
给表取别名,可以用: 表名 as 别名 或者 表名 别名
其中 u 与 q 可通过 device_id 关联查询
q 与 qd 可通过 question_id 关联查询
代码实现
一:
select u.university,qd.difficult_level,count(q.question_id)/count(distinct(q.device_id)) as avg_answer_cnt
FROM user_profile u,question_practice_detail q,question_detail qd
where u.device_id=q.device_id and q.question_id=qd.question_id
GROUP by u.university,qd.difficult_level
二:
select u.university,qd.difficult_level,count(q.question_id)/count(distinct(q.device_id)) as avg_answer_cnt
from user_profile u #第一张表
join question_practice_detail q #第二张表
on u.device_id=q.device_id #查询条件
join question_detail qd #第三张表
on q.question_id=qd.question_id #查询条件
GROUP by u.university,qd.difficult_level #分组