sql - 如何根据 SQL 中的唯一标识符为 null 赋值?
问题描述
我正在尝试根据 ID 列将字符串分配给空类别。我想要做的是用基于 ID 的销售代表替换空值。我不一定需要覆盖空值,添加带有调整后的销售名称的列也可以。我在想也许可以根据唯一 ID 使用案例组,但我没有运气。我有一个具有这种结构的表:
样本数据:
ID SalesRep Amount
123 Steve 50.00
123 Steve 100.00
123 Steve 150.00
123 NULL 200.00
456 Dave 25.00
456 Dave 75.00
456 Dave 500.00
456 NULL 300.00
预期结果:
ID SalesRep Amount
123 Steve 50.00
123 Steve 100.00
123 Steve 150.00
123 Steve 200.00
456 Dave 25.00
456 Dave 75.00
456 Dave 500.00
456 Dave 300.00
解决方案
您可以使用窗口函数:
select t.*,
coalesce(SalesRep,
max(SalesRep) over (partition by id) as imputed_ SalesRep
)
from t;
推荐阅读
- vba - 如果字段和记录号已知,则获取值?
- python - 如何对我的 Dataframe 执行特定操作?
- spring-boot - 无法访问在 MacO 上的容器内运行的 springboot 应用程序
- vba - 带有事件的 VBA 文本框数组
- perl - 为什么 perl 脚本从 YouTube 服务器获得“429 Too many requests”,而 Web 浏览器可以正常加载网页
- php - PHP/OCI - 无法从临时表中的 Oracle 过程中获取结果
- sql-server - 如何从我有没有父母的孩子的表格贸易代码中删除?
- pytorch - 如何将图像变换应用于图像列表并保持正确的尺寸?
- terminal - Gitlab错误:未能将一些参考资料推送到
- loops - 在 Python 中反向打印列表