作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在为时间序列分析格式化数据时,一个常见的需求是通过随时间填充前向值来估算缺失值(也称为 Last-Observation-Carried-Forward/LOCF )。
虽然数据分析环境通常提供该功能(例如 Pandas fillna()
),但对于更大的数据集,在 SQL 中计算它会更有效(例如,利用数据并行数据仓库设备)。
例如,考虑:
| UNIT | TIME | VALUE |
|------|------|-------|
| 1 | 1 | NULL |
| 1 | 2 | .5 |
| 1 | 3 | NULL |
| 1 | 4 | NULL |
| 1 | 5 | .2 |
| 1 | 6 | NULL |
| 2 | 1 | .6 |
| 2 | 2 | NULL |
| UNIT | TIME | VALUE |
|------|------|-------|
| 1 | 1 | NULL |
| 1 | 2 | .5 |
| 1 | 3 | .5 |
| 1 | 4 | .5 |
| 1 | 5 | .2 |
| 1 | 6 | .2 |
| 2 | 1 | .6 |
| 2 | 2 | .6 |
最佳答案
对于某些数据库,例如 Postgres,您可以定义自己的聚合函数。
LOCF 只是一个运行中的 COALESCE。
CREATE OR REPLACE FUNCTION locf_state( FLOAT, FLOAT )
RETURNS FLOAT
LANGUAGE SQL
AS $f$
SELECT COALESCE($2,$1)
$f$;
CREATE AGGREGATE locf(FLOAT) (
SFUNC = locf_state,
STYPE = FLOAT
);
SELECT unit, time,
locf(value) OVER( PARTITION BY unit ORDER BY time )
FROM mytable;
关于sql - 通过填充前移/LOCF 在 SQL 中的一系列连续行上插补一列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29612441/
我正在做一个项目,我的 android 在这个项目中作为一个网络服务器工作;输入带端口号的 IP 地址,打开 Web 界面,用户可以将文件上传到手机。我想在 Web 界面上显示一些图片,以便我们的界面
我是一名优秀的程序员,十分优秀!