sql - SQL查询空值根据另一个替换
问题描述
因此,我使用 ROW_NUMBER() OVER(PARTITION BY) 查询返回数据和行号,并将其放入临时表中。初始输出看起来像屏幕截图:
.
从这里我需要在 bt_newlabel 列中分别替换空值。因此,第 1-4 行正在进行中,5-9 为承保,10-13 为实施,依此类推。
我正在碰壁,试图确定如何做到这一点。感谢您提供有关我将如何处理此问题的任何帮助或意见。
解决方案
一种方法是分配组,然后分配值。如:
select t.*, max(bt_newlabel) over (partition by grp) as new_newlabel
from (select t.*, count(bt_newlabel) over (order by bt_stamp) as grp
from t
) t;
该组只是先前在数据中看到的已知值的数量。
您可以使用以下内容更新该字段:
with toupdate as (
select t.*, max(bt_newlabel) over (partition by grp) as new_newlabel
from (select t.*, count(bt_newlabel) over (order by bt_stamp) as grp
from t
) t
)
update toupdate
set bt_newlabel = new_newlabel
where bt_newlabel is null;
推荐阅读
- javascript - React forwardRef 从未定义,即使在重新渲染之后
- tensorflow - 哪个 Loss function & Metrics 更适合多标签分类?二元或分类交叉熵,为什么?
- flutter - 在flutter应用程序中从文件中加载模型的位置?
- csv - 如何使用 symfony 4 下载 csv 文件?
- serialization - Json.NET:序列化图表系列只返回“类型名称”
- java - 在 JFrame 中居中 JButton - Java
- javascript - 如果在 javascript 中总是相同的结果
- javascript - window.location.href 不重定向
- java - 显示来自 4 个具有不同 ID 的源的表面视图的 4 个相机预览,并从每个源捕获图像
- ios - 如何访问变量以观察 SwiftUI UI 测试的变化?