牛客网-刷SQL(10)

news/2024/7/3 0:19:11

题目:现在运营想要找到每个学校gpa最低的同学来做调研,请你取出每个学校的最低gpa。

示例:user_profile

iddevice_idgenderageuniversitygpaactive_days_within_30question_cntanswer_cnt
12138male21北京大学3.47212
23214male复旦大学415525
36543female20北京大学3.212330
42315female23浙江大学3.6512
55432male25山东大学3.8201570
62131male28山东大学3.315713
74321female26复旦大学3.69652

根据示例,你的查询结果应参考以下格式,输出结果按university升序排序:

device_iduniversitygpa
6543北京大学3.2000
4321复旦大学3.6000
2131山东大学3.3000
2315浙江大学3.6000

解题思路:
找到每个学校gpa最低的同学

  • 学校分组、使用min()函数
  • 第一步查最小值
  • 第二步用最小值作为条件,查询出其他字段
  • 三步添加排序关键字order by
select device_id , university , gpa
from user_profile 
where gpa in (
select min(gpa) from user_profile
group by university
)
order by university

SQL语句的执行顺序如下:

  1. FROM
  2. ON
  3. JOIN
  4. WHERE
  5. GROUP BY
  6. HAVING
  7. SELECT
  8. DISTINCT
  9. ORDER BY

这个顺序中,所有的查询语句都是从FROM开始执行的。在实际执行过程中,每个步骤都会为下一个步骤生成一个虚拟表,这个虚拟表将作为下一个执行步骤的输入。

错误sql分析如下:

select device_id,university,min(gpa) gpa
from user_profile 
group by university

这段错误diamante主要错在 device_id与最小gpa的device_id对不上
分析:
首选根据上面的sql执行顺序可知:
先执行from,在执行group by 有去重和剔除null的作用(这里分组之后会出现下面这个现象,只会查出表中出现在前面的university,重复的并不会查出来),在执行select 在执行 min 最后会发现,device_id 对应不上。

2138 male 21 北京大学 3.4 7 2 12
3214 male 复旦大学 4 15 5 25
5432 male 25 山东大学 3.8 20 15 70
2315 female 23 浙江大学 3.6 5 1 2


http://lihuaxi.xjx100.cn/news/1372172.html

相关文章

Yarn与Zookeeper学习

YARN学习 1.YARN是什么? yarn 分配运行资源 mapReduce的运行平台 2.YARN运行过程: 客户端与ResourceManager交互,生成临时配置文件(Application)ResourceManager根据Application信息生成Task然后生成MapReduceApplicationMaster(简称AM)AM…

深入解析 SOCKS5 代理与网络安全

一、SOCKS5 代理技术概述 SOCKS5(Socket Secure 5)代理是 SOCKS 协议的最新版本,它允许客户端在客户端与代理服务器之间建立一个安全通道,并通过此通道发送请求并访问远程服务器。与 HTTP/HTTPS 代理相比,SOCKS5 代理在…

【前端学JAVA】java的基础语法

theme: cyanosis 作为一个前端程序员,其发展前途是远不及后端程序员的。因此,只有了解后端,才能让自己更加具备核心竞争力。本系列教程将以一个前端程序员的角度快速学习JAVA。 新建项目 开发JAVA程序,我们第一步是使用IDEA新建…

操作png图片文件——libpng库——C++

文章目录 读取png、写入png读取一个png文件写入一个png创建一个空白png,改变某个像素点颜色&#xff0c;保存读取一个png,改变指定像素点颜色&#xff0c;保存 读取png、写入png #include <png.h> int main(int argc, char** argv) {png_image image; /* The control st…

ChatGPT vs. 之前版本:性能与表现的对比

&#x1f337;&#x1f341; 博主 libin9iOak带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33…

IDEA maven 命令行打包 和指令打包的区别

IDEA maven 命令行打包 和指令打包的区别 背景除此之外的打包命令还有如下&#xff1a;相比之下这样打包的好处呢&#xff1a;1. 系统独立性&#xff1a;2. 构建配置灵活性&#xff1a;3. 可移植性&#xff1a;4. 可扩展性&#xff1a; 背景 今天在项目打包的时候被大佬指指点点…

删除Windows顽固启动项Program

卸载软件之后可能会遇到任务管理器中启动项显示有Program这种无效项目的情况 无效项目如图所示: 解决方法 打开注册表 Win R 打开注册表后定位到 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Run 可以直接复制粘贴到地址栏进行跳…

【Nodejs】Node.js简介

1.前言 Node 的重要性已经不言而喻&#xff0c;很多互联网公司都已经有大量的高性能系统运行在 Node 之上。Node 凭借其单线程、异步等举措实现了极高的性能基准。此外&#xff0c;目前最为流行的 Web 开发模式是前后端分离的形式&#xff0c;即前端开发者与后端开发者在自己喜…