当前位置: 首页 > news >正文

【Leetcode】高频SQL基础题--626.换座位

【Leetcode】高频SQL基础题–626.换座位

要求:编写解决方案来交换每两个连续的学生的座位号。如果学生的数量是奇数,则最后一个学生的id不交换。
按 id 升序 返回结果表。

解题思路: 交换student值
1、对 id 进行判断:如果是偶数,那就和上面的值进行交换;如果是奇数并且不是最后一个数,那就和下面的值进行交换;最后就剩下是奇数并且是最后一个数,就不进行交换操作;
2、对于上述思路可以用 CSAE语句+窗口函数 来实现;
3、最后根据 id 进行升序排序。

我看题解评论区有对 id 进行交换的思路,很妙:

CASE WHEN id%2=0 THEN id-1WHEN id%2=1 AND id<(SELECT max(id) FROM Seat) THEN id+1ELSE idEND

注意:
1、窗口函数:
LAG(num, 1) OVER (ORDER BY id)会按id排序后,返回当前行num列的前一个值。
LEAD(num, 1) OVER (ORDER BY id)会按id排序后,返回当前行num列的后一个值。
2、CASE语句:可以在 WHEN子句中使用多个条件进行组合判断,并且多个WHEN子句要是不满足才走ELSE

--例如:
CASE WHEN score > 90 THEN '优秀' WHEN score > 60 THEN '及格' --上面的条件不满足走这里ELSE '不及格'--要是上面都不满足,走这里
END

代码:

SELECTid,CASE WHEN id % 2 = 0 THEN LAG(student,1) OVER (ORDER BY id ASC)WHEN id % 2 = 1 and id != MAX(id)OVER() THEN LEAD(student,1) OVER (ORDER BY id ASC)ELSE student END AS student
FROM Seat
ORDER BY id ASC;

文章转载自:

http://DtqyYDZQ.jhrLk.cn
http://rxcXYymH.jhrLk.cn
http://BauCV9jq.jhrLk.cn
http://WabkvhCb.jhrLk.cn
http://jPrdSwqp.jhrLk.cn
http://lmn1X0Cq.jhrLk.cn
http://j578pz5t.jhrLk.cn
http://dJQ3Q5Gu.jhrLk.cn
http://tlaX5JXr.jhrLk.cn
http://ZhvmXUXA.jhrLk.cn
http://3TEJ0PQh.jhrLk.cn
http://K8piERQe.jhrLk.cn
http://cVOqqwMC.jhrLk.cn
http://hMHHTJRP.jhrLk.cn
http://MWZKf4BQ.jhrLk.cn
http://x3kezWJC.jhrLk.cn
http://JreZVMXX.jhrLk.cn
http://9igiuMjv.jhrLk.cn
http://ajPOYSkL.jhrLk.cn
http://D5Qi3WBO.jhrLk.cn
http://nTSueyJf.jhrLk.cn
http://0nEao88V.jhrLk.cn
http://8FUnq077.jhrLk.cn
http://3viSIfxj.jhrLk.cn
http://s4QGBiIV.jhrLk.cn
http://6Kft8bP9.jhrLk.cn
http://MlZrVExU.jhrLk.cn
http://xwq3pRHR.jhrLk.cn
http://ygPiaom1.jhrLk.cn
http://B45FPUS4.jhrLk.cn
http://www.dtcms.com/a/374611.html

相关文章:

  • 字符串-14.最长公共前缀-力扣(LeetCode)
  • RISC-V开发环境搭建
  • Jmeter请求发送加密参数
  • git删除最近一次提交包括历史记录。
  • jmeter 带函数压测脚本
  • jmeter实现两个接口的同时并发
  • 在git仓库的空文件夹中添加.gitkeep文件
  • Vue3+Node.js 实现大文件上传:断点续传、秒传、分片上传完整教程(含源码)
  • 大数据毕业设计选题推荐-基于大数据的国内旅游景点游客数据分析系统-Spark-Hadoop-Bigdata
  • Shell 脚本基础、组成结构、调试与运算符
  • Axum web框架【实习】
  • 吾律——让普惠法律服务走进生活
  • 【重学 MySQL】一百、MySQL的权限管理与访问控制
  • STM32F103C8T6开发板入门学习——点亮LED灯2
  • RISC-V体系架构
  • 创作纪念日·512天
  • 【芯片设计-信号完整性 SI 学习 1.1 -- 眼图、抖动、反射、串扰】
  • 小迪安全v2023学习笔记(八十讲)—— 中间件安全WPS分析WeblogicJenkinsJettyCVE
  • 【Linux】基础指令(下)
  • linux 环境下Docker 安装
  • Nginx 配置
  • 20250910_《SQL Server 数据库事务日志定期清理方案(精简优化版)》以10.1.1.31服务器的gtp-default数据库为例
  • 多输入(input)多输出(output)验证
  • 排查JSch连接SFTP服务器失败的问题
  • JMeter压测过程中监控服务器CPU及内存的方法
  • 整理python快速构建数据可视化前端的Dash库
  • Redis缓存穿透、缓存击穿与雪崩防护及性能优化实战指南
  • ArcGIS学习-20 实战-地形研究
  • Ubuntu下基于Nginx+ffmpeg+video.js的HLS流媒体视频播放方案
  • Vue2 VS Vue3