炼码LintCode--数据库题库(级别:中等;数量:更新中~)--刷题笔记_03

目录

  • 炼码LintCode--数据库题库(级别:中等;数量:更新中~)--刷题笔记_03
    • 3617 · 更换连续两个人的座位(case when)
      • 题:
      • sql:
      • 解释:
    • 3615 · 数据中位数(窗口函数、floor、ceil 取整函数)
      • 题:
      • sql:
      • 解释:
    • 3612 · 指定日期的产品价格(coalesce 函数)
      • 题:
      • sql:
      • 解释:
    • 3611 · 我的最佳好友
      • 题:
      • sql:
      • 解释:
    • xxx
      • 题:
      • sql:
      • 解释:
    • xxx
      • 题:
      • sql:
      • 解释:
    • xxx
      • 题:
      • sql:
      • 解释:
    • xxx
      • 题:
      • sql:
      • 解释:
    • 未完待续~~~

炼码LintCode–数据库题库(级别:中等;数量:更新中~)–刷题笔记_03


炼码LintCode–数据库题库(级别:入门;数量:144道)–刷题笔记_01

炼码LintCode–数据库题库(级别:简单;数量:55道)–刷题笔记_02


持续更新~~

3617 · 更换连续两个人的座位(case when)

3617 · 更换连续两个人的座位

题:

在这里插入图片描述

sql:

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

解释:

-- 比如数据长这样:   id = 1 , name = a  ;--   id = 2 , name = b  ;--   id = 3 , name = c  ;--   id = 4 , name = d  ;--   ...--   id = 11 , name = k ;--        id = 1 , 对应的 name = a,那么符合第二个when,id = 1 + 1 = 2 ,此时该条记录就变成 id = 2 , name = a;
--        id = 2 , 对应的 name = b , 那么符合else这个判断,id = 2 - 1 = 1   , 此时该条记录就变成 id = 1 , name = b
-- 此时,id = 1 和 id = 2 的数值就改变了,后面再根据 order by id 进行排序,就变成 id = 1 ,name = b;--  id = 2 , name = a;   这样就实现了位置的互换-- 最后那条记录如果是偶数,那么就正常交换,如果是奇数,那么就符合第一个 when 的判断,id不做任何改变,也就是位置不进行交换。select
(-- 这里的逻辑就是改变id的数值而已。case -- 如果id是奇数且id=表的记录的,说明这个id是最后一条记录的id,因为是奇数,所以位置不需要改变,id不变。when id % 2 = 1 and id = (select count(*) from seat) then id-- 接下来的id就不是最后一条记录了,位置就得改变,如果 id 是奇数 ,那么 id + 1 when id % 2 = 1 then id + 1-- 否则,偶数的id - 1 变成奇数,而且是上一条记录的数据的idelse id - 1end     
) as id , namefrom seatorder by id;

3615 · 数据中位数(窗口函数、floor、ceil 取整函数)

3615 · 数据中位数

题:

在这里插入图片描述

sql:

select avg(num) median
from (select num ,row_number() over(order by num) as 'row_num', count(*) over () as 'total_rows'from Number
) subquery
where row_num in (  floor( (total_rows + 1) / 2 ), ceil( (total_rows + 1) / 2 )
);

解释:

就是先把数据排序,然后给每个数据一个编号,然后再用总条数去+1除2得出中间数。
总条数是偶数,+1再除2,得出中间两个数,再算平均值,得出的就是中位数;
总条数是奇数,+1再除2,得出的就是两个一样的数值,取平均数,得出的就是中位数。

-- floor 和 ceil 是两个常见的数学函数,它们分别用来处理数字的取整-- avg 是求平均数,也就是求符合条件的中位数
select avg(num) median
from (select num ,-- 先给 num 降序排序,然后再给每个数值一个编号row_number() over(order by num) as 'row_num', -- 这里是统计表中有几条数据,用这个窗口函数,可以每一行都显示表总条数,而且不需要和group by 搭配-- 使用窗口函数时,可以返回每一行对应的总行数,而不需要对结果进行聚合。count(*) over () as 'total_rows'from Number
) subquery
where row_num in (  -- floor(x):返回小于或等于 x 的最大整数,即向下取整。 floor(3.5)  = 3 ;-- ceil(x):返回大于或等于 x 的最小整数,即向上取整。  ceil(3.5) = 4 ;floor( (total_rows + 1) / 2 ), ceil( (total_rows + 1) / 2 )
);

3612 · 指定日期的产品价格(coalesce 函数)

3612 · 指定日期的产品价格

题:

在这里插入图片描述

sql:


SELECT p.id,COALESCE((SELECT new_priceFROM Products WHERE id = p.id AND updated_date <= '2023-05-15'ORDER BY updated_date DESCLIMIT 1), 99) AS price
FROM (SELECT DISTINCT id FROM Products) p;

解释:

-- coalesce 函数:
-- 语法: COALESCE(expression1, expression2, ..., expressionN)
-- expression1, expression2, ..., expressionN 是一个或多个表达式(列、常量、计算结果等)。
-- COALESCE 会从左到右依次检查这些表达式或值,返回第一个 非 NULL 的值。如果所有的表达式都是 NULL,它会返回 NULL。
-- 值都为null时,也可以返回我们指定的数据SELECT p.id,-- COALESCE 函数用于确保当子查询没有返回任何结果(即该产品在 2023-05-15 前没有任何修改记录)时,返回默认价格 99COALESCE((SELECT new_priceFROM Products WHERE id = p.id AND updated_date <= '2023-05-15'-- 最新时间--用于获取最新修改的记录ORDER BY updated_date DESCLIMIT 1), 99) AS price
FROM -- 先进行去重,得到所有的商品 id(SELECT DISTINCT id FROM Products) p;

3611 · 我的最佳好友

3611 · 我的最佳好友

题:

sql:

解释:


xxx

题:

sql:

解释:


xxx

题:

sql:

解释:


xxx

题:

sql:

解释:


xxx

题:

sql:

解释:


未完待续~~~

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

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

相关文章

【stm入门学习SPI_铁头山羊系列教程】

stm入门学习SPI_铁头山羊教程 1.SPI总线1.电路结构与通信协议2.SPI的特点&#xff1a;3. 极性 相位4. 4中时钟模式5. 比特位的传输模式6.数据宽度 2. SPI引脚IO引脚初始化 1.SPI总线 1.电路结构与通信协议 主机向从机NSS引脚发送低电压&#xff0c;选中该从机。 主机通过向MOS…

RK3568平台开发系列讲解(platform虚拟总线驱动篇)实验:点亮一个LED

🚀返回专栏总目录 文章目录 一、设备树二、平台驱动三、应用沉淀、分享、成长,让自己和他人都能有所收获!😄 📢xxx 程序编写的主要内容为添加 LED 灯的设备树节点、在驱动程序中使用 of 函数获取设备节点中的属性,编写测试应用程序。 • 首先向设备树添加 LED 设备节点…

Spring Boot 与腾讯云 MySQL 监听 Binlog 数据变化,并使用 UI 展示页面效果

引言 在现代的分布式系统和微服务架构中&#xff0c;数据同步和变更监控是保证系统一致性和实时性的核心问题之一。MySQL 数据库的 binlog&#xff08;二进制日志&#xff09;功能能够记录所有对数据库的修改操作&#xff0c;如插入&#xff08;INSERT&#xff09;、更新&…

菜鸟驿站二维码/一维码 取件识别功能

特别注意需要引入 库文 ZXing 可跳转&#xff1a; 记录【WinForm】C#学习使用ZXing.Net生成条码过程_c# zxing-CSDN博客 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using static System.Net.…

PlantUML——时序图

PlantUML时序图 背景 时序图&#xff08;Sequence Diagram&#xff09;&#xff0c;又名序列图、循序图&#xff0c;是一种UML交互图&#xff0c;用于描述对象之间发送消息的时间顺序&#xff0c;显示多个对象之间的动态协作。时序图的使用场景非常广泛&#xff0c;几乎各行各…

算法——链表相交(leetcode23)

链表相交这题就是找出两个相交链表相交的节点并返回 如上图假设上方第一个节点是链表A的头结点下方第一个节点是链表B的头结点 解法有以下两种 方法一(移动长链表指针后同步移动两个链表的指针直至相等) 也就是先遍历链表A和链表B的长度接着得到链表A和B长度的差值然后领长链…

STM32单片机锁死

自己画了一块stm32f407板子&#xff0c;外部晶振用了25MHz&#xff0c;烧写了8MHz的程序&#xff0c;第一次烧写成功&#xff0c;第二次开始识别不到芯片&#xff0c;第一次烧写成功由于外部晶振为25Hz&#xff0c;芯片内频率计算器却是按照8MHz写的&#xff0c;所以得出最后的…

Windows文件资源管理器增强工具

引言&#xff1a; 资源管理器在我们使用电脑时是经常用到的&#xff0c;各种文件资源等的分类整理都离不开它。但是Windows Explorer确实不好用&#xff0c;不智能&#xff0c;不符合人体工程学。特别是在一些场合&#xff0c;在打开的一堆文件夹里&#xff0c;想从中找到自己要…

聚类中3个解空间的描述

深度学习中做分类任务时&#xff0c;我们常常根据最后的全连接层得到一组向量A&#xff08;比如&#xff1a;[0.9, 0.7, 0.2]&#xff09;&#xff0c;这组向量经过归一化得到向量B(比如&#xff1a;[0.5&#xff0c; 0.3&#xff0c; 0.2])&#xff0c;再根据B向量采用概率最大…

Empirical analysis of hardware-assisted GPU virtualization

​ 年份&#xff1a;2019 作者&#xff1a;Anshuj Garg 会议&#xff1a;ESCI 出版商&#xff1a;IEEE 摘要 本篇文章对vGPU虚拟化的性能开销、调度算法的影响、同构与异构工作负载的干扰效应&#xff0c;以及PCI直通与vGPU的性能差异进行了研究。结果表明&#xff0c;vGP…

Java面试题2024-Java基础

Java基础 1、 Java语言有哪些特点 1、简单易学、有丰富的类库 2、面向对象&#xff08;Java最重要的特性&#xff0c;让程序耦合度更低&#xff0c;内聚性更高&#xff09; 3、与平台无关性&#xff08;JVM是Java跨平台使用的根本&#xff09; 4、可靠安全 5、支持多线程 2、…

【案例分享】运用 Infragistics Ultimate UI 让工业物联网 IIoT 数据流更易于访问

客户概况 贝克休斯旗下的 Bently Nevada 是状态监测和资产保护领域的全球领导者。该公司拥有 60 多年的专业知识&#xff0c;在全球安装了超过 600 万个传感器和 100,000 个机架监测系统。 如今&#xff0c;Bently Nevada的开发团队正在使用现代 UI 工具包来增强他们的系统&a…

PHM技术:基于支持向量机的智能故障诊断 | 行星齿轮箱智能故障诊断

目录 1.数据获取 2.特征提取与选择 3.健康状态识别 1.数据获取 用的行星齿轮箱数据采集自图1中的多级齿轮传动系统实验台中&#xff0c;在实验过程中&#xff0c;分别模拟了8种行星齿轮箱的健康状态&#xff0c;包括正常、第一级太阳轮点蚀、第一级太阳轮齿根裂纹、第一级…

推荐一款Windows系统精简工具:NTLite

NTLite是一款可以对Windows系统优化的安装工具&#xff0c;使用这款完全中文的NTLite授权注册版让你不会因为注册或者语言导致无法正常的使用&#xff0c;如果你正需要马上下载使用吧。 NTLite基本简介 NTLite 中文版可以用来做什么&#xff0c;它其实是一款 Windows 系统精简…

ESP-IDF VScode 项目构建/增加组件 新手友好!!!

项目构建 1.新建文件夹&#xff0c;同时在该文件夹内新建.c和.h文件 如图所示&#xff0c;在components中新建ADC_User.c、ADC_User.h、CMakeLists.txt文件。当然这里你也可以不在components文件夹内新建文件&#xff0c;下面会说没有在components文件夹内新建文件构建项目的方…

Node Exporter 可观测性最佳实践

Node Exporter 介绍 Node Exporter 是一个开源的 Prometheus 指标收集器&#xff0c;它提供了大量关于宿主机系统的关键指标&#xff0c;如 CPU、内存、磁盘和网络使用情况。在 Kubernetes 环境中&#xff0c;Node Exporter 对于监控集群节点的健康状况至关重要。本文将介绍如…

Spring Boot汽车资讯:科技与速度的交响

3系统分析 3.1可行性分析 通过对本汽车资讯网站实行的目的初步调查和分析&#xff0c;提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本汽车资讯网站采用SSM框架&#xff0c;JAVA作为开发语言&#…

外卖跑腿小程序源码如何满足多样需求?

外卖跑腿平台已经成了当代年轻人的便捷之选&#xff0c;校园中也不例外&#xff0c;那么外卖、跑腿小程序就需要满足用户多样化的需求&#xff0c;而这背后的源码扮演者最重要的角色。 用户类型的多样性 1.对上班族而言&#xff0c;他们希望外卖小程序能够快速下单、准确配送…

GeeRPC第一天 服务端与消息编码(1)

RPC 1. 系统架构图解释&#xff08;Graph&#xff09; 架构层次 RPC框架核心功能&#xff1a;这是系统的最上层&#xff0c;涵盖了框架的主要功能模块&#xff0c;直接与底层服务和用户交互。 服务层&#xff1a;主要负责服务的注册、发现和治理。 服务注册&#xff1a;将服务…

如何在谷歌浏览器中开启离线模式

在数字化时代&#xff0c;互联网已经成为我们生活中不可或缺的一部分。然而&#xff0c;有时候我们可能会遇到没有网络连接的情况&#xff0c;这时谷歌浏览器的离线模式就显得尤为重要。本教程将详细介绍如何在谷歌浏览器中轻松开启离线模式&#xff0c;并附带一些相关教程指南…