力扣SQL刷题12

news2024/11/16 4:34:39

目录标题

      • 176. 第二高的薪水 - 输出null问题
      • 177. 第N高的薪水--omg,第一次遇到SQL里写function
      • 178. 分数排名 - 简单
      • 626. 换座位 - 新题型

176. 第二高的薪水 - 输出null问题

题型:输出第二大的数值,且不存在时输出null
解答:

在这里插入图片描述
解法一:

select distinct salary from Employee order by salary desc limit 1,1 

但是输不出null,所以外面再加一层

select (select distinct salary from Employee order by salary desc limit 1,1) as SecondHighestSalary 

注意点:

  1. 去重,如果有多个相同的数据,使用关键字 distinct 去重
  2. 判断临界输出,如果不存在第二高的薪水,查询应返回 null,使用 ifNull(查询,null)方法
  3. 因为去了重,又按顺序排序,使用 limit()方法,查询第二大的数据,即第二高的薪水,即 limit(1,1) (因为默认从0开始,所以第一个1是查询第二大的数,第二个1是表示往后显示多少条数据,这里只需要一条)
select ifnull((select distinct Salary from Employee order by Salary desc limit 1,1),null)

解法二:

select max(Salary) SecondHighestSalary
from employee
where
salary<(select max(salary) from employee)

177. 第N高的薪水–omg,第一次遇到SQL里写function

题型:SQL里面有位未知参数n,需要写函数
解答:
create function 函数名(参数,int)return int
begin
return (select …);
end

在这里插入图片描述
法一:dense_rank()排序

create function getNthHighestSalary(N INT) returns INT
BEGIN
    return(
        select distinct salary
        FROM
            (select salary,dense_rank()over(order by salary desc) as 'rank1'
            from employee) tmp
        where tmp.rank1 = N
    );
end

法二:limit n-1,1的思路

CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
set N = N - 1;
  RETURN (
      # Write your MySQL query statement below.
      select ifnull((
          select distinct Salary 
          from Employee
          order by Salary desc limit N,1),null) as getNthHighestSalary
  );
END

注意:limit里面不能写运算表达式。
下面的会报错

create function getNthHighestSalary(N INT) returns INT
BEGIN
    return(
        select ifnull((select distinct salary
        FROM employee
        order by salary desc
        limit N-1,1),null) as getNthHighestSalary
    );
end

178. 分数排名 - 简单

题型:dense_rank() --112
注意点:列名的rank和自带rank函数关键字重名了,所以要引号

在这里插入图片描述
在这里插入图片描述

select Score,
dense_rank()over(order by Score desc) as 'Rank'
from Scores

626. 换座位 - 新题型

题型:序号奇数与偶数交互名字
解答:不换名字,换id号,通过case when then id+1等进行

在这里插入图片描述
在这里插入图片描述

select (case 
    when mod(id,2)=1 and id=(select count(*) from seat ) then id
    when mod(id,2)=1 then id+1
    else id-1 end) as id,student
from seat
order by id;

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

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

相关文章

ELK日志分析--ES(Elasticsearch)--(一)

ES基本介绍 单机ES部署 ES&#xff08;Elasticsearch&#xff09;集群部署 1.基本介绍 Elasticsearch&#xff1a;存储、搜索和分析 Elasticsearch是Elastic Stack核心的分布式搜索和分析引擎。Logstash和Beats有助于收集&#xff0c;聚合和丰富你的数据并将其存储在Elastics…

Revit教程:标注技巧,底部延伸距离“设置,实时轴号

一、Revit在三维视图中的高程点标注技巧 一般在平面图上高程点是水平放置的&#xff0c;但是在三维显示中&#xff0c;如何将高程点水平放置呢? 在三维视图中&#xff0c;有些时候根据项目要求&#xff0c;要在建筑上放置高程点&#xff0c;但是将视图旋转以后&#xff0c;高程…

【python】anaconda 管理 python 环境

anaconda 管理虚拟环境anaconda 简介python 虚拟环境的安装查看当前 anaconda中所有的虚拟环境创建新的虚拟环境激活所创建的虚拟环境删除指定的虚拟环境退出当前虚拟环境查看当前虚拟环境中所有安装的库安装常用包pycharmpycharm 下环境配置pycharm 使用anaconda 简介 anacon…

新能源车动力总成技术探讨:混动和纯电之争、电驱动未来发展趋势

随着我国节能与新能源汽车渗透率提升&#xff0c;对节能与新能源车各种技术路线特别是动力总成技术的探讨&#xff0c;也成为汽车产业各级企业人士讨论的热点。爱普搜汽车、精研院邀请了汽车行业众多整车厂、Tier 1/2企业、中汽协、汽车技术咨询公司的技术专家/高管&#xff0c…

数据结构与算法之最小爬楼梯费用动态规划

继续上一道题目&#xff0c;在上一道题目的基础之上&#xff0c;我们来解决这一道爬楼梯最小费用题。一.题目描述二.思路(动态规划五部曲)确定dp数组以及下标的含义使用动态规划&#xff0c;就要有一个数组来记录状态&#xff0c;本题只需要一个一维数组dp[i]就可以了。dp[i]的…

剑指 Offer 34. 二叉树中和为某一值的路径

摘要 剑指 Offer 34. 二叉树中和为某一值的路径 注意到本题的要求是&#xff0c;找到所有满足从根节点到某个叶子节点经过的路径上的节点之和等于目标和的路径。核心思想是对树进行一次遍历&#xff0c;在遍历时记录从根节点到当前节点的路径和&#xff0c;以防止重复计算。 …

如何写出一份优秀的简历和求职信?

写一份优秀的简历和求职信是成功求职的重要一步。 01、简历 突出重点信息&#xff1a;把最重要的信息放在简历的前面&#xff0c;例如您的工作经验和教育背景等。 使用简明扼要的语言&#xff1a;在简历中使用简短的句子和简明扼要的语言&#xff0c;让招聘者能够快速了解您的…

Java 诊断工具Arthas--优化速度+堆栈判断

文章目录前言使用总结前言 我们在日常开发中&#xff0c;当我们遇到大数据量处理的时候&#xff0c;总是苦恼有时候到底慢在哪&#xff1f; 在coding的时候就要注意以下几点&#xff1a; 循环内打印日志循环内查询sql循环内多次发送http请求查询的时候尽量指定查询字段&#…

Redis的过期策略

Redis 过期删除与内存淘汰 #Redis 使用的过期删除策略是什么&#xff1f; Redis 是可以对 key 设置过期时间的&#xff0c;因此需要有相应的机制将已过期的键值对删除&#xff0c;而做这个工作的就是过期键值删除策略。 每当我们对一个 key 设置了过期时间时&#xff0c;Red…

GEE学习笔记 五十四:QGIS展示3D的高程数据

QGIS作为一个开源的非常好用的本地GIS工具&#xff0c;这里不在赘述&#xff0c;这里说它的一个比较有意思的内容。通过DEM数据展示3D地形。 下载DEM&#xff08;高程数据&#xff09; 比如从官网下载&#xff0c;或者从别的地方获取&#xff0c;这里就不在赘述。我这里下载使…

BatchNorm与LayerNorm的比较

Batch Normalization存在的一些问题 &#xff08;1&#xff09;BN在mini-batch较小的情况下不太适用 BN是对整个mini-batch的样本统计均值和方差 当训练样本数很少时&#xff0c;样本的均值和方差不能反映全局的统计分布信息&#xff0c;从而导致效果下降 &#xff08;2&am…

【ROS2开发】BOOST-C++实现topic通信

一、说明 不知是何原因&#xff0c;ROS2居然没有集成开发环境&#xff0c;因此工程管理、编译等是全手工活。本文将详细讲述工程构建、编译、topic节点具体内容。让初学者直接进入战场环境。结合图文&#xff0c;尽量看清开发过程。 二、目标实现 我们这里就是要手工构建一个Pu…

根据数据规模猜解法

文章目录0、结论1、题目1.1 题目描述1.2 思路分析1.2.1 暴力递归解法11.2.2 解法1修改成动态规划1.2.3 暴力递归解法21.2.4 解法2修改成动态规划1.2.5 对数器1.3 小结2、总结0、结论 1&#xff09;C/C&#xff0c;1秒处理的指令条数为 10810^8108 2&#xff09;Java等语言&am…

大数据核心技术是什么

大数据的核心层&#xff1a;数据采集层、数据存储与分析层、数据共享层、数据应用层&#xff0c;可能叫法有所不同本质上的角色都大同小异。 大数据的核心技术都包括什么&#xff1f; 1、数据采集 数据采集的任务就是把数据从各种数据源中采集和存储到数据存储上&#xff0c…

多种方法进行去基线处理

目录detrend函数去除基线多项式拟合原函数BEADS 基线处理小波算法经验模态分解&#xff08;EMD&#xff09;参考detrend函数去除基线 detrend函数只能用于去除线性趋势&#xff0c;对于非线性的无能为力。 函数表达式&#xff1a;y scipy.signal.detrend(x): 从信号中删除线…

3.【Linux】安装 elasticsearch-7.10.0 单机版

1.下载 版本 JDK 11ES elasticsearch-7.10.0 jdk安装 下载&#xff1a; wget https://download.java.net/openjdk/jdk11/ri/openjdk-1128_linux-x64_bin.tar.gz配置环境变量&#xff1a;# 编辑配置文件 vim /etc/profile# Java11环境变量配置 export JAVA_HOME/devtools/ja…

【编程语言】AWK 极简教程

1 概述 AWK 是一种解释执行的编程语言。它非常的强大,被设计用来专门处理文本数据。AWK 的名称是由它们设计者的名字缩写而来 —— Afred Aho, Peter Weinberger 与 Brian Kernighan。 由 GNU/Linux 发布的 AWK 版本通常被称之为 GNU AWK,由自由软件基金( Free Software Fou…

《爆肝整理》保姆级系列教程python接口自动化(二十二)--unittest执行顺序隐藏的坑(详解)

简介 大多数的初学者在使用 unittest 框架时候&#xff0c;不清楚用例的执行顺序到底是怎样的。对测试类里面的类和方法分不清楚&#xff0c;不知道什么时候执行&#xff0c;什么时候不执行。虽然或许通过代码实现了&#xff0c;也是稀里糊涂的一知半解&#xff0c;这样还好&am…

2023前端二面手写面试题总结

创建10个标签&#xff0c;点击的时候弹出来对应的序号 var a for(let i0;i<10;i){adocument.createElement(a)a.innerHTMLi<br>a.addEventListener(click,function(e){console.log(this) //this为当前点击的<a>e.preventDefault() //如果调用这个方法&#x…

Nordic nRF芯片FDS模块学习

FDS系统学习 文章目录FDS系统学习一、ROM&#xff0c;RAM&#xff0c;FLASH作用二、ROM,RAM和FLASH在单片中的运作原理三、Flash访问模块FDS用法1. FDS在sdk_config.h中的配置2. fds_register()注册3. fds_record_write()写记录4. fds_record_find()查找5. fds_record_open()读…