SQL语句using的用法

该博客介绍了如何使用SQL查询语句,通过等价于join操作的using关键字,从exam_record和examination_info表中筛选出SQL类别且难度为硬的试卷,计算用户完成这些试卷的得分截断平均值,即去除最高分和最低分后的平均分。最终得出的结果显示SQL类别高难度试卷的截断平均分为81.7。
摘要由CSDN通过智能技术生成

using等价于join操作中的on

使用using必须满足如下两个条件:

1. 查询必须是等值连接。
2. 等值连接中的列必须具有相同的名称和数据类型。

【举例】:此为牛客网SQL进阶第14题

表examination_info(exam_id试卷ID, tag试卷类别, difficulty试卷难度, duration考试时长, release_time发布时间)如下:
在这里插入图片描述
表exam_record(uid用户ID, exam_id试卷ID, start_time开始作答时间, submit_time交卷时间, score得分)如下:
在这里插入图片描述
【题目】:从exam_record数据表中计算所有用户完成SQL类别高难度试卷得分的截断平均值(去掉一个最大值和一个最小值后的平均值)

【思路】

round(…,1)保留一位小数;

计算截断平均值:(完成SQL类别高难度试卷的总分 - 最大值 - 最小值) / (总个数-2): (sum(score) - max(score) - min(score)) / (count(score) - 2)

select tag,difficulty,
round((sum(score) - max(score) - min(score)) / (count(score) - 2 ), 1)
     as clip_avg_score
     from exam_record
     join examination_info using(exam_id)
     where tag = "SQL" and difficulty = "hard";
select tag,difficulty,round((sum(score)-max(score)-min(score))/(count(score)-2),1)
as clip_avg_score
from examination_info ei
join exam_record er
on ei.exam_id=er.exam_id
where  tag='SQL' and difficulty='hard';

【结果】

tagdifficultyclip_avg_score
SQLhard81.7
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值