刷牛客的第三天2024.1.26

本文介绍了针对复旦大学和浙江大学8月份用户的SQL练题情况,包括问题数量、正确率统计,以及对不同难度级别的题目分析。同时,还展示了如何使用SQL进行数据筛选和排序,如按年龄、GPA和日期降序排列用户信息。
摘要由CSDN通过智能技术生成

第三十四题统计复旦用户8月份练题情况


select
    qpd.device_id,
    up.university,
    count(qpd.result) as question_cnt,
    sum(if (qpd.result = 'right', 1, 0)) as right_question_cnt
from
    question_practice_detail qpd
    inner join user_profile up on qpd.device_id = up.device_id
where
    up.university = '复旦大学'
    and month (qpd.date) = 8
group by
    device_id

inner join 是sql语句中的内连接,内连接, 可以只写JOIN ,只有连接的两个表中,都存在连接标准的数据才会保留下来,相当于两个表的交集。如果前后连接的是同一个表,也叫自连接。

IF(expr1,expr2,expr3)

如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),则 IF()的返回值为expr2; 否则返回值则为 expr3。IF() 的返回值为数字值或字符串值,具体情况视其所在语境而定。


第三十五题浙江大学难度题目的正确性

SELECT
    qd.difficult_level,
    sum(if (qpd.result = 'right', 1, 0)) / count(qpd.device_id) AS correct_rate
FROM
    (
        question_practice_detail AS qpd
        LEFT JOIN user_profile AS u ON qpd.device_id = u.device_id
        LEFT JOIN question_detail AS qd ON qpd.question_id = qd.question_id
    )
WHERE
    u.university = '浙江大学'
GROUP BY
    qd.difficult_level
ORDER BY
    correct_rate ASC;

这道题的要求比较多,分开来一步一步进行拆解。

第一步解决correct_rate是怎么算来的,sum(if (qpd.result = 'right', 1, 0)) / count(qpd.device_id) AS correct_rate。

第二步选出浙江大学 where u.unicersity=浙江大学。

第三步不同难度

GROUP BY

    qd.difficult_level

第四步,排序 ordery by 

第五步整理


第三十六题查找后排序

select device_id,age
from user_profile 
order by age

order by 默认为从小到大排desc为从大到小排序。


第三十七题查找后多列排序

select device_id,gpa,age
from user_profile
order by gpa,age

直接用order by 来对他进行排序。


第三十八题查找后降序排序

select device_id,gpa,age
from user_profile 
order by gpa desc, age desc

如果对两个数据进行排序,需要对每一个数据后面都加一个desc


第三十九题21年八月份练题数据

select 
 count(distinct device_id) as did_cnt ,
 count(question_id) as question_cnt
 from question_practice_detail
 where date like'2021-08%'

考察like datelike 为date这一列中含有“2021-08    的数据

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值