SQL24、统计每个用户的平均刷题数

思路:使用表连接将有关联的表合并为大表。并用分组将重复的学校和难度数据合并,同时添加分组条件是山东大学。同时在计算平均答题数时用所有题目数除以用户数目

代码解释:对连接表进行分组并取出数据

SELECT 
  a.university, 
  c.difficult_level, 
  COUNT(b.question_id) / COUNT(DISTINCT b.device_id) AS avg_answer_cnt
FROM 
  (user_profile AS a
  JOIN question_practice_detail AS b 
  ON a.device_id = b.device_id)
  JOIN question_detail AS c 
  ON b.question_id = c.question_id
GROUP BY 
  a.university, c.difficult_level
HAVING 
  a.university = '山东大学'

题目:https://www.nowcoder.com/practice/f4714f7529404679b7f8909c96299ac4?tpId=199&tqId=1975676&ru=/exam/oj&qru=/ta/sql-quick-study/question-ranking&sourceUrl=%2Fexam%2Foj%3Fpage%3D1%26tab%3DSQL%25E7%25AF%2587%26topicId%3D199

posted @ 2022-07-11 14:56  tiansz  阅读(93)  评论(0编辑  收藏  举报