sql - SQL:如何在每个 ID 中查询 max datetime 中的值并用前一个值填充空值
解决方案
您的问题有点令人困惑,因为这两个数据集看起来它们具有大约相同的行,但不同。
获得所需内容的一种方法是使用 across join
生成行,然后使用余额子查询:
select d.dte, i.id,
(select t2.after_balance
from t t2
where cast(t2.create_time as date) <= d.dte and
t2.id = i.id
order by t2.create_time desc
limit 1 -- fetch first 1 row only
) as balance
from (select distinct cast(create_time as date) as dte
from t
) d cross join
(select distinct id
from t
) i
order by d.dte, i.id;
这使用标准/通用 SQL。在您使用的数据库中,某些功能的表达方式可能有所不同。
推荐阅读
- java - 从非 EDT 触发 Java 重绘很慢
- c# - 如何在 Mac 上通过 Visual Studio 使用 csharp 处理 IOS 中的后台任务
- elasticsearch - Elasticsearch:自定义令牌过滤器
- vert.x - Vert.X 4 Web OpenAPI 路由器blockingHandler
- ios - 以可保存的短信形式发送 ICS 文件
- signalr - SignalR 发出从客户端调用服务器方法的问题
- javascript - 刷新页面时清除上下文值(来自状态)
- javascript - 使用数组更改更新/刷新 kendo ui 自动完成
- kubernetes - 如何在卷挂载中使用 pod 名称?
- python - 问题 - 处理后将文件写回本地系统