【问题标题】:Populating Missing Null Values with previous Non-Null Value in Presto/SQL在 Presto/SQL 中用以前的非空值填充缺失的空值
【发布时间】:2021-09-30 01:06:24
【问题描述】:

我有一张桌子,上面有多种产品,不同日期/年份的价格。我要补缺失值

数据:

|年份 |产品 |价值 |

| 2012 |一个 | 100 |

| 2013 |一个 | 200 |

| 2013 |乙| 150 |

| 2015 |一个 | 400 |

| 2016 |乙| 500 |

输出:

|年份 |产品 |价值 |

| 2012 |一个 | 100 |

| 2013 |一个 | 200 |

| 2014 |一个 | 200 |

| 2015 |一个 | 400 |

| 2013 |乙| 150 |

| 2014 |乙| 150 |

| 2015 |乙| 150 |

| 2016 |乙| 500 |

首选 Presto 中的查询。有什么建议可以实现吗?

【问题讨论】:

  • 2012 B 150 在输出中丢失

标签: mysql window missing-data presto auto-populate


【解决方案1】:

选择 t。年,t.product,t.value 从 ( SELECT CASE (WHEN a. year - LAG(a.year) >1 THEN a. year +1 ) AS 'year' ,

CASE (WHEN a.year - LAG(a.year) >1 THEN LAG(a.product) AS 'product',

CASE (WHEN a. year - LAG(a.year) >1 THEN LAG (a.value) AS 'value'

来自数据a

联合

SELECT year, product, value FROM data ) t

按 t 订购。年份

【讨论】:

  • 只能读取DB,不能使用Inset和Update?需要以这种方式输出,主数据库中没有变化
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-18
  • 2013-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多