本文介绍了根据具有相等值的列填充列的空值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个表格如下:
客户 ID | 订单号 | 交易代码 | transactionSubCode |
---|---|---|---|
123123123 | ABC-1234 | 空 | 空 |
123123123 | XYZ-123 | 空 | 空 |
123123123 | DEF-456 | 空 | 空 |
123123123 | HYT-111 | 12a8ksabbc | 999123xxxx11 |
123123123 | ZZZ-999 | 空 | 空 |
333333334 | XYC-777 | 空 | 空 |
333333334 | XYZ-331 | 空 | 空 |
333333334 | XYZ-334 | 13a7kcssaf | 空 |
333333334 | XYZ-655 | 空 | 76612yyyas33 |
我想根据具有相同值的列(即 customerIdtransactionSubCode 列上的现有值分配给同一列的所有空值/strong> 在我们的例子中.所以决赛桌的结果如下:
I would like to distribute the existing value on the transactionSubCode column to all of the null values of the same column, based on a column that has the same value, which is customerId in our case. So the final table will have results like below:
客户 ID | 订单号 | 交易代码 | transactionSubCode |
---|---|---|---|
123123123 | ABC-1234 | 空 | 999123xxxx11 |
123123123 | XYZ-123 | 空 | 999123xxxx11 |
123123123 | DEF-456 | 空 | 999123xxxx11 |
123123123 | HYT-111 | 12a8ksabbc | 999123xxxx11 |
123123123 | ZZZ-999 | 空 | 999123xxxx11 |
333333334 | XYC-777 | 空 | 76612yyyas33 |
333333334 | XYZ-331 | 空 | 76612yyyas33 |
333333334 | XYZ-334 | 13a7kcssaf | 76612yyyas33 |
333333334 | XYZ-655 | 空 | 76612yyyas33 |
我尝试过使用不同的方法进行自连接,但无论如何都没有得到想要的结果.
I have tried self-joining with different approaches but never managed to get the desired result in any case.
推荐答案
可以使用窗口函数:
select t.* (except transactionSubCode),
max(transactionSubCode) over (partition by customerId) as transactionSubCode
from t;
这篇关于根据具有相等值的列填充列的空值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!