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

哪个网站可以免费做音乐相册南昌创建网站

哪个网站可以免费做音乐相册,南昌创建网站,wordpress网站导航模板,企业邮箱登陆登录入口官网力扣题 1、题目地址 2388. 将表中的空值更改为前一个值 2、模拟表 表:CoffeeShop Column NameTypeidintdrinkvarchar id 是该表的主键(具有唯一值的列)。该表中的每一行都显示了订单 id 和所点饮料的名称。一些饮料行为 null。 3、要求…

力扣题

1、题目地址

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

2、模拟表

表:CoffeeShop

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

3、要求

编写一个解决方案将 drink 的 null 值替换为前面最近一行不为 null 的 drink。保证表第一行的 drink 不为 null。

返回 与输入顺序相同的 结果表。

查询结果格式示例如下。

示例 1:

输入:

CoffeeShop 表:

iddrink
9Rum and Coke
6null
7null
3St Germain Spritz
1Orange Margarita
2null

输出:

iddrink
9Rum and Coke
6Rum and Coke
7Rum and Coke
3St Germain Spritz
1Orange Margarita
2Orange Margarita

解释:

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

4、代码编写

我的写法

思路:首先要求里面的输出顺序还是和原先一样,原先并没有按什么排序,所以我们得先对数据标上序号,这就可以用到窗口函数 row_numer,然后我们只需要在查询到 null 数据的时候,去查询比这个 null 数据的序号小的不为 null 的数据,然后根据序号倒序,取第一条即可,就能满足要求

里面需要注意的一点就是窗口函数 ROW_NUMBER() over()over 括号里面是不加分组和排序的

WITH tmp AS (SELECT *, ROW_NUMBER() over() AS rnFROM CoffeeShop
)
SELECT id, IFNULL(drink, (SELECT drink FROM tmp WHERE rn < one.rn AND drink IS NOT NULL ORDER BY rn DESC LIMIT 1)) AS drink
FROM tmp AS one

知识点

临时变量有两种用法:(temp 可以改成其他名)
1、使用 set,定义形式 set @temp=[var]

SET @temp=10;
SELECT @temp;

2、使用 select,定义形式 select @temp:=[var],下面两种都可以输出

SELECT @temp:=10;
SELECT @temp:=10;
SELECT @temp;

参考:mysql 临时变量

网友写法(临时变量用法)

SELECT id,@temp := IFNULL(drink, @temp) drink
FROM CoffeeShop

上面网友写法就是用的第二种用法,代码分析如下:

第 1 行:IFNULL 不为 null,将 Rum and Coke 赋值到 @temp 里面,并输出 SELECT @temp:= drink(drink='Rum and Coke')
第 2 行:IFNULLnull,将 @temp 赋值到 @temp 里面,并输出 SELECT @temp:=@temp(@temp='Rum and Coke'
第 3 行:IFNULLnull,将 @temp 赋值到 @temp 里面,并输出 SELECT @temp:=@temp(@temp='Rum and Coke'
第 4 行:IFNULL 不为 null,将 St Germain Spritz 赋值到 @temp 里面,并输出 SELECT @temp:= drink(drink='St Germain Spritz')
第 5 行:IFNULL 不为 null,将 Orange Margarita 赋值到 @temp 里面,并输出 SELECT @temp:= drink(drink='Orange Margarita')
第 6 行:IFNULLnull,将 @temp 赋值到 @temp 里面,并输出 SELECT @temp:=@temp(@temp='Orange Margarita'

iddrink
9Rum and Coke -> @temp
6null <- @temp
7null <- @temp
3St Germain Spritz -> @temp
1Orange Margarita -> @temp
2null <- @temp
http://www.yayakq.cn/news/142072/

相关文章:

  • 深圳手机商城网站设计做ppt卖给网站
  • 制作自己的平台网站站长平台有哪些
  • 有关建筑网站建设方案ipv6改造网站怎么做
  • 浙江省的网站建设公司有哪些有个网站做彩盒的
  • 网站建设备案方案学做ps的网站有哪些
  • oss可以做视频网站吗国际交流网站平台有哪些
  • 自己怎么创建网站买空间做网站
  • 蚌埠网站排名vr超市门户网站建设
  • 建设工程教育网官方网站最专业网站建设公司首选
  • 网站开发人员的工作wordpress商城主题模板下载地址
  • 盘锦威旺做网站建设公司优秀产品设计案例
  • 设计在线设计网站2022网站seo
  • 帝国网站网站手机版怎么做专门开发小程序的公司
  • 兴义哪有做网站驰易网站建设
  • 火星wap建站社区网站开发进度表
  • 网站建设常见故障郑州软件开发公司网站
  • 网站建设 功能需求公众号做成网站那样怎么做
  • 湛江专业建站免费咨询一家专业做家谱的网站
  • 西安烽盈网站建设网站做新闻外链有作用吗
  • 登封做网站优化wordpress加载不出图
  • 网站网络推广企业站长之家ip地址归属查询
  • 创意餐厅网站建设文案书哪里购买网站空间好
  • 广东建设局网站首页合肥网站设计服务
  • 做网站维护需要懂什么wordpress 前台发文章
  • 网站域名在哪里备案wordpress彩票插件
  • 网站群建设的意义公司注册地址在哪里看
  • 网站建设基础服务做房产网站哪个好
  • 做网站后台用什么语言在线天堂8
  • 西安网站建设联系方式业务外包
  • 开封网站推广模块建筑