LeetCode--2388. 将表中的空值更改为前一个值

文章目录

  • 1 题目描述
  • 2 测试用例
  • 3 解题思路

1 题目描述

表: CoffeeShop

+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| id          | int     |
| drink       | varchar |
+-------------+---------+

id 是该表的主键(具有唯一值的列)。
该表中的每一行都显示了订单 id 和所点饮料的名称。一些饮料行为 null。

编写一个解决方案将 drink 的 null 值替换为前面最近一行不为 null 的 drink。保证表第一行的 drink 不为 null
返回 与输入顺序相同的 结果表。

2 测试用例

输入:

CoffeeShop 表:

+----+-------------------+
| id | drink             |
+----+-------------------+
| 9  | Rum and Coke      |
| 6  | null              |
| 7  | null              |
| 3  | St Germain Spritz |
| 1  | Orange Margarita  |
| 2  | null              |
+----+-------------------+

输出:

+----+-------------------+
| id | drink             |
+----+-------------------+
| 9  | Rum and Coke      |
| 6  | Rum and Coke      |
| 7  | Rum and Coke      |
| 3  | St Germain Spritz |
| 1  | Orange Margarita  |
| 2  | Orange Margarita  |
+----+-------------------+

解释:
对于 ID 6,之前不为空的值来自 ID 9。我们将 null 替换为 “Rum and Coke”。
对于 ID 7,之前不为空的值来自 ID 9。我们将 null 替换为 “Rum and Coke”。
对于 ID 2,之前不为空的值来自 ID 1。我们将 null 替换为 “Orange Margarita”。
请注意,输出中的行与输入中的行相同。

3 解题思路

  1. 使用 IFNULL 判断 drink 是否为 null,如果为 null 则赋值为 @pre_value 的值,使用自定义变量 @pre_value 存储最近一次非 null 的 drink
select id,  @pre_value := IFNULL(drink, @pre_value) as drink  
from CoffeeShop

执行结果

+--+-----------------+
|id|drink            |
+--+-----------------+
|9 |Rum and Coke     |
|6 |Rum and Coke     |
|7 |Rum and Coke     |
|3 |St Germain Spritz|
|1 |Orange Margarita |
|2 |Orange Margarita |
+--+-----------------+

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

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

相关文章

Jmeter教程-JMeter 环境安装及配置

Jmeter教程 JMeter 环境安装及配置 在使用 JMeter 之前,需要配置相应的环境,包括安装 JDK 和获取 JMeter ZIP 包。 安装JDK 1.JDK下载 示例环境为Windows11环境,读者应根据实际环境下载JDK的安装包。 JDK下载地址: Java21 下载 …

【Linux】软件包管理器 yum | vim编辑器

前言: 软件包管理器 yum和vim编辑器讲解 文章目录 软件包管理器 yum编辑器-vim四种模式普通模式批量化注释和批量化去注释末行模式临时文件 软件包管理器 yum yum(Yellowdog Updater, Modified)是一个在基于 RPM(管理软件包的格式和工具集合&…

如何将多张图片变成一张?一个工具在线分享

如何将多张图片变成一张gif动图?现在gif动图非常受大家的欢迎我们想要将自己手中的多张图片变成一张gif动图时应该怎么制作呢?通过使用在线图片合成(https://www.gif.cn/)工具,不需要下载软件,手机、pc均可…

(01)Hive的相关概念——架构、数据存储、读写文件机制

目录 一、架构及组件介绍 1.1 Hive整体架构 1.2 Hive组件 1.3 Hive数据模型(Data Model) 1.3.1 Databases 1.3.2 Tables 1.3.3 Partitions 1.3.4 Buckets 二、Hive读写文件机制 2.1 SerDe 作用 2.2 Hive读写文件流程 2.2.1 读取文件的过程 …

Pinia 官网速通

前言:参考 Pinia 中文文档,在 Vue3 配合 ts 中的使用。 一:介绍 1. 什么是 Pinia Pinia 是 Vue 的存储库,允许跨组件/页面共享状态。 1.1. 为什么要使用 Pinia? 热模块更换、保持任何现有状态、使用插件扩展 Pinia …

Opencv实战(1)读取与图像操作

Opencv 文章目录 Opencv一、读取图片1.imshow2.namedWindow3.imshow4.效果图 二、像素操作(1).访问像素1. at()2.Mat_ (2).遍历像素1.指针遍历2.迭代器遍历 (3).threshold(4).通道分离1.split2.merge (5)Gamma矫正 三、深浅拷贝 一、读取图片 1.imshow Mat imread(const stri…

DS:八大排序之归并排序、计数排序

创作不易,感谢三连支持!! 一、归并排序 1.1 思想 归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide andConquer)的一个非常典型的应用。将已有序的子…

【cmu15445c++入门】(9)C++ 智能指针shared_ptr

一、智能指针shared_ptr std::shared_ptr 是一种智能指针,它通过指针保留对象的共享所有权。这意味着多个共享指针可以拥有同一个对象,并且可以复制共享指针。 二、代码 // In this file, well talk about std::shared_ptr, which is a C smart pointer…

LeetCode 第385场周赛个人题解

目录 100212. 统计前后缀下标对 I 原题链接 题目描述 接口描述 思路分析 代码详解 100229. 最长公共前缀的长度 原题链接 题目描述 接口描述 思路分析 代码详解 100217. 出现频率最高的素数 原题链接 题目描述 接口描述 思路分析 代码详解 100212. 统计前后缀…

氢氧化铝市场研究:预计2029年将达到15亿美元

近年来,随着全球工业和建筑业的快速发展,氢氧化铝的需求不断增加。特别是在汽车、航空航天、电子产品等行业中,氢氧化铝的应用越来越广泛。此外,环境意识的提升也推动了氢氧化铝市场的增长,因为其可回收再利用的特性符…

【C++】C++11中

C11中 1.lambda表达式2.可变参数模板3.包装器 1.lambda表达式 在前面我们学习过仿函数。仿函数的作用到底是干什么的呢? 它为了抛弃函数指针! 主要是因为函数指针太难学了 就比如下面这个,看着也挺难受的。 它的参数是一个函数指针&#x…

使用XTuner微调书生·浦语2大模型实战

一、XTuner安装 1、代码准备 mkdir project cd project git clone https://github.com/InternLM/xtuner.git 2、环境准备 cd xtuner pip install -r requirements.txt #从源码安装 pip install -e .[all] 3、查看配置文件列表 XTuner 提供多个开箱即用的配置文件&#xf…

Python 二维矩阵加一个变量运算该如何避免 for 循环

Python 二维矩阵加一个变量运算该如何避免 for 循环 引言正文方法1------使用 for 循环方法2------不使用 for 循环引言 今天写代码的时候遇到了一个问题,比如我们需要做一个二维矩阵运算,其中一个矩阵是 2x2 的,另一个是 2x1 的。在这个二维矩阵中,其中各个参数会随着一个…

devc++跑酷小游戏3.0.0

导航: Dev-c跑酷小游戏 1.0.0 devc跑酷小游戏1.2.5 devc跑酷游戏1.2.6 devc跑酷游戏2.0.0 devc跑酷游戏2.0.1 devc跑酷游戏2.4.0 【更新内容每日废话】 关卡数量没变,每个都微调了一下。作者再此保证能过,都测试过,过不了…

怎样保证数据库和redis里的数据一致性

使用缓存更新策略:在更新数据库时,同时更新Redis中相应的数据。这可以通过编写代码来实现,在数据库更新操作完成后,同步更新Redis中对应的数据。这可以通过在代码中使用事务来保证更新的原子性,确保数据库和Redis中的数…

2月19日

ApplicationContextInitializer SpringBoot 框架在设计之初,为了有更好的兼容性,在不同的运行阶段,提供了非常多的可扩展点,可以让程序员根据自己的需求,在整个Spring应用程序运行过程中执行程序员自定义的代码Applic…

贪心+堆维护,HDU1789Doing Homework again

一、题目 1、题目描述 Ignatius has just come back school from the 30th ACM/ICPC. Now he has a lot of homework to do. Every teacher gives him a deadline of handing in the homework. If Ignatius hands in the homework after the deadline, the teacher will reduc…

【深蓝学院】移动机器人运动规划--第5章 最优轨迹生成--笔记

文章目录 1. Preliminaries2. Multicopter dynamics and differential flatness(多旋翼动力学和微分平坦特性)2.1 Differential Flatness2.2 具体建模2.3 Flatness Transformation的解析推导 3. Trajectory Optimization轨迹优化3.1 Problem formulation…

C++学习Day06之继承中的同名成员处理

目录 一、程序及输出1.1 同名成员变量1.2 同名成员函数 二、分析与总结 一、程序及输出 1.1 同名成员变量 #include<iostream> using namespace std;class Base { public:Base(){this->m_A 10;}void func(){cout << "Base中的func调用" << e…

“利用电子医院记录,针对急性护理环境中的老年人,开发并验证了一项医院脆弱风险评分:一项观察性研究“

总结 背景 年长者在全球范围内成为医疗保健的增长用户。我们的目标是确定是否可以利用常规收集的数据来识别具有虚弱特征并面临不利健康结果风险的年长者。 方法 使用三步方法开发和验证了一种医院脆弱风险评分&#xff0c;该评分基于《国际疾病和相关健康问题统计分类第十次修…