免费网站的软件下载,html写手机网站吗,asp化妆品网站源码,wordpress 游戏网页牛客SQL练习详解 06#xff1a;综合练习 SQL34 统计复旦用户8月练题情况SQL35 浙大不同难度题目的正确率SQL39 21年8月份练题总数 叮嘟#xff01;这里是小啊呜的学习课程资料整理。好记性不如烂笔头#xff0c;今天也是努力进步的一天。一起加油进阶吧#xff01; SQL34 统… 牛客SQL练习详解 06综合练习 SQL34 统计复旦用户8月练题情况SQL35 浙大不同难度题目的正确率SQL39 21年8月份练题总数 叮嘟这里是小啊呜的学习课程资料整理。好记性不如烂笔头今天也是努力进步的一天。一起加油进阶吧 SQL34 统计复旦用户8月练题情况
题目
现在运营想要了解复旦大学的每个用户在8月份练习的总题目数和回答正确的题目数情况
请取出相应明细数据对于在8月份没有练习过的用户答题数结果返回0.select u.device_id,university,count(q.result) as question_cnt,sum(if(q.resultright,1,0)) as right_question_cnt# count使用错误# count(if(q.resultright,1,0)) as right_question_cnt#count正确写法# count(CASE WHEN q.result right THEN 1 END) as right_question_cnt
from user_profile u
left join question_practice_detail q
on u.device_id q.device_id
and month(date)8
where university复旦大学
group by u.device_id出错分析1. sum(if(q.resultright,1,0)) as right_question_cnif(q.result right, 1, 0)对于每一行如果 q.result 等于 right则返回 1否则返回 0。SUM(...)对所有这些 1 和 0 的值进行求和从而计算出结果为 right 的行数。2. count(if(q.resultright,1,0)) as right_question_cntCOUNT() 函数只计算非 NULL 的值。而在 IF 的情况下当条件不满足时它返回 0所以会被视为有效值。COUNT() 将计算这些有效值的数量但不会计算条件为 FALSE 的情况因此会返回意外的结果。SQL35 浙大不同难度题目的正确率
题目
现在运营想要了解浙江大学的用户在不同难度题目下答题的正确率情况
请取出相应数据并按照准确率升序输出。法1: right joinleft join
select qd.difficult_level,SUM(if(q.resultright,1,0))/NULLIF(count(q.result),0) as correct_rate
from (select qpd.device_id,qpd.question_id,qpd.resultfrom user_profile # 出错点此处应该为右连接否则会产生空值# left join question_practice_detail qpd right join question_practice_detail qpd on u.device_id qpd.device_idwhere university 浙江大学) q
left join question_detail qd on q.question_id qd.question_id
group by qd.difficult_level
order by correct_rate ASC法2: 右连接左链接select qd.difficult_level,count(if(qpd.resultright,1,null))/count(qpd.result) as correct_rate
from user_profile uright join question_practice_detail qpd using(device_id)left join question_detail qd using(question_id)where university 浙江大学
group by qd.difficult_level
order by correct_rate ASC法3: 内连接 inner join inner可以省略返回两个表都有的记录select difficult_level,count(if(resultright,1,null)) / count(result) as correct_rate
from user_profile up
join question_practice_detail using(device_id)
join question_detail using(question_id)
where university浙江大学
group by difficult_level
order by correct_rate法4:使用avg函数计算均值 where...and连接三表SELECT difficult_level,AVG(IF(resultright,1,0)) AS correct_rate
FROM user_profile u, question_practice_detail qpd,question_detail qd
WHERE u.device_id qpd.device_id AND qpd.question_id qd.question_idAND university浙江大学
GROUP BY difficult_level
ORDER BY correct_rate;SQL39 21年8月份练题总数
题目
现在运营想要了解2021年8月份所有练习过题目的总用户数和练习过题目的总次数
请取出相应结果select count(distinct device_id) as did_cnt, count(question_id) as question_cnt
from question_practice_detail
where date_format(date,%Y%m)202108 # Y大写年份4位
# where date_format(date,%y%m) 2108 # 小写y年份后2位# where date_format(date, %Y-%m)2021-08
# where date like 2021-08%
# where year(date)2021 and month(date)08
# where date between 2021-08-01 and 2021-08-31# where substring(date,1,7) 2021-08
# where substring_index(date,-,2) 2021-08
# where mid(date,1,7) 2021-08
# where left(date,7) 2021-08Ending 更多课程知识学习记录随后再来吧
就酱嘎啦注 人生在勤不索何获。