SQL刷题笔记day3——第二大值

news2024/11/17 13:27:12

1题目

我的错误代码:

select emp_no,salary
from salaries
where salary=
(select salary 
from salaries
group by salary
order by salary
limit 1,1 )
order by emp_no asc

正确代码:

select emp_no,salary
from salaries
where salary=
(select salary 
from salaries
group by salary
order by salary desc //要找第二大的,就要降序排列!!!
limit 1,1 )
order by emp_no asc

这里不能用下面这个代码,因为salary<max(salary)会将除开最大值以为的都返回,而不仅仅是第二大的。

select emp_no,salary
from salaries
where salary<
(select max(salary)
from salaries)
order by emp_no asc

但是下面这样就可以了,在salary<max(salary)这里的剩余salary中再计算一次max(salary),就返回剩余salary的最大值啦——第二大!然后对应salary等于这个返回值就好了。

select emp_no,salary
from salaries
where salary=(select max(salary) #这里的salary是小于最大值的,返回的就是第二大咯
                from salaries
                where salary<(select max(salary) 
                              from salaries 
                             ))
order by emp_no asc

复盘:思路是正确的,但是失误在小细节! 因为可能有多个员工的薪水为第二多的薪水,所以最号的方法是先找出第二大的薪水(我这里是用的where嵌套),然后输出这一薪水对应的所有员工号

2题目

我的错误代码:

select e.emp_no,s.salary,e.last_name,e.first_name
from employees e join salaries s
on e.emp_no=s.emp_no

大神代码:

#解法1 max 任意相同工资人数
select e.emp_no,s.salary,e.last_name,e.first_name
from employees e join salaries s 
on e.emp_no=s.emp_no 
and  s.to_date='9999-01-01'
and s.salary = (select max(salary)
                from salaries
                where salary<(select max(salary) 
                              from salaries 
                              where to_date='9999-01-01'
                             )
                        and to_date='9999-01-01'
                )

 解法1思路:找出第二大的薪水,思路同题目1,第二大等于(最大值除外的值中的最大值),计算两次max。

#第二种 通用型可以求任意第几高,并且可以求多个形同工资
select e.emp_no,s.salary,e.last_name,e.first_name
from employees e join salaries s 
on e.emp_no=s.emp_no 
and  s.to_date='9999-01-01'
and s.salary = 
(
     select s1.salary
     from salaries s1 join  salaries s2 
     on s1.salary<=s2.salary 
     and s1.to_date='9999-01-01' and s2.to_date='9999-01-01'
     group by s1.salary
     having count(distinct s2.salary)=2
 )

解法2思路:having count(distinct s2.salary)=2 保证了子查询只返回s2具有两个不同工资水平的工资,又s1.salary<=s2.salary ,所以返回的s1.salary中就是第二大的salary。(只是有点小不明白为什么having count(distinct s2.salary)=2 是取的排名前2个工资,那么多工资水平。。。)

复盘:不能用order by排序就不知道咋整了,正经人谁规定不让用order by呀! 

  • 复习SQL查询语句语法结构和运行顺序
    • 语法结构:select--from--where--group by--having--order by--limit
    • 运行顺序:from--where--group by--having--order by--limit--select

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1692862.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vita-CLIP: Video and text adaptive CLIP via Multimodal Prompting

标题&#xff1a;Vita-CLIP: 通过多模态提示进行视频和文本自适应CLIP 源文链接&#xff1a;https://openaccess.thecvf.com/content/CVPR2023/papers/Wasim_Vita-CLIP_Video_and_Text_Adaptive_CLIP_via_Multimodal_Prompting_CVPR_2023_paper.pdfhttps://openaccess.thecvf.…

代码随想录算法训练营第五十天||309.最佳买卖股票时机含冷冻期、714.买卖股票的最佳时机含手续费

文章目录 一、309.最佳买卖股票时机含冷冻期 思路 二、714.买卖股票的最佳时机含手续费 思路 一、309.最佳买卖股票时机含冷冻期 给定一个整数数组&#xff0c;其中第 i 个元素代表了第 i 天的股票价格 。 设计一个算法计算出最大利润。在满足以下约束条件下&#xff0c;…

如何高效创建与配置工程环境:零基础入门

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、工程环境的搭建与准备 二、配置虚拟环境与选择解释器 三、编写代码与自动添加多行注释 …

JVM学习-堆空间(三)

JVM在进行GC时&#xff0c;并非每次都对新生代、老年代、方法区(元空间)三个区域一起回收&#xff0c;大部分时间回收的都是新生代 针对Hotspot VM的实现&#xff0c;它里面的GC按照回收区域分两大类型&#xff1a;一种是部分收集(Partial GC)&#xff0c;一种是整堆收集(Full …

【新】snapd申请Let‘s Encrypt免费SSL证书、自动化续签证书

简介 之前写过一篇certbot申请SSL证书的文章&#xff1a;SSL证书申请&#xff0c;写得比较详细&#xff0c;但是最近发现使用snapd会更方便。 使用机器&#xff1a;Ubuntu 20.04 简单步骤 1、首先安装必要软件 sudo apt install snapd sudo apt install certbot sudo apt …

SQL语言实践

1.数据库 创建 CREATE DATABASE Database; 改名 ALERT DATABASE Data RENAME TO Database; 删除 DROP DATABASE Database; 2.表 创建&#xff1a; CREATE TABLE table(); 与主键&#xff0c;外键有关 CREATE TABLE Table(特殊的主键 serial NOT NULL,外键 …

ICML2024 定义新隐私保护升级:DP-BITFIT新型微调技术让AI模型学习更安全

DeepVisionary 每日深度学习前沿科技推送&顶会论文分享&#xff0c;与你一起了解前沿深度学习信息&#xff01; 引言&#xff1a;差分隐私在大模型微调中的重要性和挑战 在当今的深度学习领域&#xff0c;大型预训练模型的微调已成为提高各种任务性能的关键技术。然而&am…

Multi-objective reinforcement learning approach for trip recommendation

Multi-objective reinforcement learning approach for trip recommendation A B S T R A C T 行程推荐是一项智能服务&#xff0c;为游客在陌生的城市提供个性化的行程规划。 它旨在构建一系列有序的 POI&#xff0c;在时间和空间限制下最大化用户的旅行体验。 将候选 POI 添…

[OpenGL] 法线贴图

目录 一 为什么要使用法线贴图 二 二种不同法线方式的使用 2.1 插值法线 2.1 法线贴图 本章节源码 点击此处 一 为什么要使用法线贴图 法线贴图我们可以使用更少的顶点表现出同样丰富的细节。高精度网格和使用法线贴图的低精度网格几乎区分不出来。所以法线贴图不仅看起来…

从ES到ClickHouse,Bonree ONE平台更轻更快!

本文字数&#xff1a;8052&#xff1b;估计阅读时间&#xff1a;21 分钟 作者&#xff1a;博睿数据 李骅宸&#xff08;太道&#xff09;& 娄志强&#xff08;冬青&#xff09; 本文在公众号【ClickHouseInc】首发 本系列第一篇内容&#xff1a; 100%降本增效&#xff01;…

windows安装kafka环境

1.安装jdk8 参考教程java8安装教程_java8u371安装教程-CSDN博客 下载kafak安装包&#xff1a; kafka_2.12-3.6.1.tgz 解压&#xff1a; 启动ZooKeeper软件&#xff0c;kafka内部已近集成了该软件。 进入Kafka解压缩文件夹的config目录&#xff0c;修改zookeeper.properti…

SpringCloud系列(22)--Ribbon默认负载轮询算法原理及源码解析

前言&#xff1a;在上一篇文章中我们介绍了如何去切换Ribbon的负载均衡模式&#xff0c;而本章节内容则是介绍Ribbon默认负载轮询算法的原理。 1、负载轮询算法公式 rest接口第N次请求数 % 服务器集群总数 实际调用服务器下标&#xff08;每次服务器重启后rest接口计数从1开始…

HTML静态网页成品作业(HTML+CSS)——动漫海绵宝宝介绍网页(5个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有5个页面。 二、作品演示 三、代…

外卖小程序开发指南:从源码开始构建高效的外卖平台

今天&#xff0c;笔者将为您详细讲解如何从源码开始构建一个高效的外卖小程序&#xff0c;帮助您快速进入这一蓬勃发展的市场。 一、需求分析与设计 需求分析包括&#xff1a; 1.用户需求 2.市场需求 3.技术需求 二、前端开发 以下是开发步骤&#xff1a; -使用微信开发…

听说部门来了个00后测试开发,一顿操作给我整麻了

公司新来了个同事&#xff0c;听说大学是学的广告专业&#xff0c;因为喜欢IT行业就找了个培训班&#xff0c;后来在一家小公司实习半年&#xff0c;现在跳槽来我们公司。来了之后把现有项目的性能优化了一遍&#xff0c;服务器缩减一半&#xff0c;性能反而提升4倍&#xff01…

labelme的使用

创建虚拟环境 听说是要用这个3.6版本的python环境 conda create --namelabelme python3.6激活虚拟环境 activate labelme下载labelme pip install labelme #安装labelme组件启动labelme 在你打开文件的时候推荐还是自己先建立一个label.txt 把自己要分的类别放进去 label.…

【CSP CCF】202104-2 邻域均值

题目 过程 前缀和 定义 假定一个数组&#xff0c;前缀和就是该元素前所有元素和。也就是如果我们舌钉一个数组s为前缀和数组&#xff0c;那么s[3]就是我们原数组前三个元素之和。 优势 降低计算复杂度。 如果我们要求一段区间的和&#xff0c;那么我们用普通数组要从第一…

Linux驱动开发笔记(二) 基于字符设备驱动的I/O操作

文章目录 前言一、设备驱动的作用与本质1. 驱动的作用2. 有无操作系统的区别 二、内存管理单元MMU三、相关函数1. ioremap( )2. iounmap( )3. class_create( )4. class_destroy( ) 四、GPIO的基本知识1. GPIO的寄存器进行读写操作流程2. 引脚复用2. 定义GPIO寄存器物理地址 五、…

一个 Go 实现的跨平台 GUI 框架 Fyne

今天&#xff0c;推荐一个 Go 实现的 GUI 库 - fyne。 Go 官方也没有提供标准的 GUI 框架&#xff0c;在 Go 实现的几个 GUI 库中&#xff0c;Fyne 算是最出色的&#xff0c;它有着简洁的API、支持跨平台能力&#xff0c;且高度可扩展。这也就是说&#xff0c;Fyne 是可以开发…

如果直升机一直在空中悬停,24小时后能否绕行地球一圈?

直升机悬停在空中&#xff0c;似乎给了我们一种静止的错觉。但如果直升机一直保持这种状态&#xff0c;24小时后&#xff0c;它是否能够神奇地绕地球一圈&#xff1f; 地球自转&#xff1a;直升机悬停的无形锁链 问题的答案并非像表面上看起来那样简单。要解答这个问题&#…