题意:参加了答题的山东大学的用户在不同难度下的平均答题题目数


分解:

  • 由山东大学的用户,知: university=‘山东大学’
  • 由不同难度,知: group by difficult_level
  • 由平均答题数,知: count(question_id)/count(distinct(device_id))
  • 共涉及到三张表 user_profile u,question_practice_detail q,question_detail qd
    给表取别名,可以用: 表名 as 别名 或者 表名 别名
    其中 uq 可通过 device_id 关联查询,
    qqd 可通过 question_id 关联查询

代码:

select u.university,qd.difficult_level,count(q.question_id)/count(distinct(q.device_id)) as avg_answer_cnt
from question_practice_detail q #以question_practice_detail表作为中间连接表
join user_profile u  #内关联第一张表
on u.device_id=q.device_id and u.university='山东大学'  #查询条件

join question_detail qd  #关联第二张表
on q.question_id=qd.question_id  #查询条件

group by qd.difficult_level  #分组