牛客网刷题-SQL23 统计每个学校各难度的用户平均刷题数

本文介绍如何通过SQL查询,利用left join连接user_profile, question_practice_detail和question_detail表,统计每个学校用户在不同难度下的平均答题题目数,以满足运营对用户行为深度洞察的需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述

题目:运营想要计算每个学校用户不同难度下的用户平均答题题目数情况,请你取出相应数据

用户信息表:user_profile
在这里插入图片描述
题库练习明细表:question_practice_detail
在这里插入图片描述
表:question_detail
在这里插入图片描述
根据示例,你的查询应返回以下结果:
在这里插入图片描述

解题思路

答案一:

SELECT
    university,
    difficult_level,
    COUNT(qpd.question_id) / COUNT(distinct qpd.device_id) as avg_answer_cnt
FROM question_practice_detail as qpd

LEFT JOIN user_profile as up
on up.device_id=qpd.device_id

LEFT JOIN question_detail as qd
on qd.question_id=qpd.question_id

GROUP BY university,difficult_level

question_practice_detail这个表拥有其他两个表相同的数据。通过关系连接表与表中间关系字段。进行两次的内连接,或者左外连接。
三个相关的表进行连接,然后按照每个大学和难度进行分组排序

答案二:

select university,difficult_level,count(difficult_level)/count(distinct S.device_id) avg_answer_cnt
from user_profile S,question_practice_detail T,question_detail Q
where S.device_id=T.device_id and T.question_id=Q.question_id
group by university,difficult_level;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值