题解 | 统计每个学校的答过题的用户的平均答题数
统计每个学校的答过题的用户的平均答题数
https://www.nowcoder.com/practice/88aa923a9a674253b861a8fa56bac8e5
select
university,
count(question_id)/count(distinct question_practice_detail.device_id) as avg_answer_cnt
from question_practice_detail
inner join user_profile
on question_practice_detail.device_id=user_profile.device_id
group by university;
问题分解:
- 限定条件:无;
- 每个学校:按学校分组,
group by university - 平均答题数量:在每个学校的分组内,用总答题数量除以总人数即可得到平均答题数量
count(question_id) / count(distinct device_id)。 - 表连接:学校和答题信息在不同的表,需要做连接
INNER JOIN | 返回两个表中满足连接条件的记录(交集)。 |
LEFT JOIN | 返回左表中的所有记录,即使右表中没有匹配的记录(保留左表)。 |
RIGHT JOIN | 返回右表中的所有记录,即使左表中没有匹配的记录(保留右表)。 |
FULL OUTER JOIN | 返回两个表的并集,包含匹配和不匹配的记录。 |
CROSS JOIN | 返回两个表的笛卡尔积,每条左表记录与每条右表记录进行组合。 |
SELF JOIN | 将一个表与自身连接。 |
NATURAL JOIN | 基于同名字段自动匹配连接的表。 |
