牛客网-SQL入门篇-23-统计每个学校各难度的用户平均刷题数

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

题目:运营想要计算一些参加了答题的不同学校、不同难度的用户平均答题量,请你写SQL取出相应数据

一共三张表

①用户信息表:user_profile

第一行表示:id为1的用户的常用信息为使用的设备id为2138,性别为男,年龄21岁,北京大学,gpa为3.4,在过去的30天里面活跃了7天,发帖数量为2,回答数量为12

②题库练习明细表:question_practice_detail

第一行表示:id为1的用户的常用信息为使用的设备id为2138,在question_id为111的题目上,回答错误

③表:question_detail

第一行表示: 题目id为111的难度为hard

 分析:

①不同学校、不同难度→group by 分组

②用户平均答题量需要计算→题目数量/用户数 注:用户数需要去重,有的用户答了多道题

代码:

select 
    u.university,
    q_d.difficult_level,
    count(q_p.question_id) / count(distinct (q_p.device_id)) avg_answer_cnt
from  question_practice_detail q_p
    join user_profile u
        on q_p.device_id=u.device_id
    join question_detail q_d
        on q_p.question_id=q_d.question_id
group by 
    u.university,
    q_d.difficult_level

典型三段式SQL写法: 

第一步:select选择字段,含原生字段和构造字段

                其中,构造过程常用sum、count、round、+-*等

第二步:from选择表格,含合并表格操作

第三步:数据操作段,含分组/排序/筛选/选取指定行数等操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值