SQL刷题记录四

题目9:SQL35 浙大不同难度题目的正确率

链接浙大不同难度题目的正确率_牛客题霸_牛客网 (nowcoder.com)

解题思路: 

  • 表头重命名:根据输出示例,正确率用as语法重命名
  • 升序输出:order by xxx asc
  • 正确率的计算方式:判断result是否为right,是的话赋值为1,对于正确的数目,可以用count,也可以用sum,正确率还可以直接用avg计算。
  • join方式选择:如果前面inner join改成left join,为了防止结果中有难度为None的结果,需要在order by前加一句 having qd.difficult_level != 'None'
select  distinct qd.difficult_level, 
        #三种不同的表示语句
        avg(if(qpd.result='right', 1, 0)) as correct_rate
#       sum(if(qpd.result='right', 1, 0)) / count(qpd.question_id) as correct_rate
#       count(if(qpd.result='right', 1, null)) / count(qpd.question_id) as correct_rate
from user_profile as up
inner join question_practice_detail as qpd on up.device_id = qpd.device_id 
inner join question_detail as qd on qpd.question_id = qd.question_id 
where university = '浙江大学'
group by difficult_level
order by correct_rate asc;

题目10:SQL38 查找后降序排列

链接查找后降序排列_牛客题霸_牛客网 (nowcoder.com)

解题思路: 先按照gpa降序,再按照age降序

SELECT device_id, gpa, age FROM user_profile ORDER BY gpa DESC, age DESC;

题目11:SQL39 21年8月份练题总数

链接:​​​​​​​21年8月份练题总数_牛客题霸_牛客网 (nowcoder.com)

解题思路: 使用year ;month ; count三个函数

select  count(distinct device_id) as did_cnt ,
        count(question_id) as question_cnt
from question_practice_detail
where year(date) = 2021 and month(date) = 8;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值