mysql - 如何根据前一行在接下来的几行中插入值

标签 mysql sql r

<分区>

我有一张这样的 table

  Id   A    B     
  1  11   event1  
  2  12   event2   
  3  00   event1
  4  00   event2
  5  11   event1
  6  00   event2
  7  00   event3
  8  13   event1

我想从以前的值更改 00。输出看起来像这样

  Id  A   B 
  1  11   event1
  2  12   event2
  3  12   event1
  4  12   event2
  5  11   event1
  6  11   event2
  7  11   event3
  8  13   event1

有没有办法在 R 或 MySQL 中执行此操作。 谢谢

最佳答案

您可以在 MySQL 中使用相关子查询:

SELECT t.id, 
       (CASE WHEN A <> '00' 
             THEN A
             ELSE (SELECT t1.A
                   FROM table t1
                   WHERE t1.id < t.id AND t1.A <> '00'
                   ORDER BY t1.id DESC
                   LIMIT 1
                  )
        END) AS A, B
FROM table t;

关于mysql - 如何根据前一行在接下来的几行中插入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53395813/

相关文章:

php - 使用完整或部分在表中搜索

javascript - 如何使用下拉列表填充文本框

java - Spring data CrudRepository findBy 关系

javascript - node.js、express.js 和 mysql - 无法读取未定义的属性 'status'

mysql - 将 "SUMs"与类似值组合

sql - 使用连接构建复杂的 SQL 查询

R:使用 lapply 将新列添加到数据框列表中

r - 如何避免 as.numeric() 中的 "Warning message: NAs introduced by coercion"

r - 使用 ggplot2 将带有文本的图像作为刻度标签

mysql - 使用 mySQL 将时间舍入到最接近的 6 分钟