如何根据 SQL 中的唯一标识符为 null 赋值?
How to assign a value to a null based on a unique identifier in SQL?
我正在尝试根据 ID 列将字符串分配给空类别。我想要做的是根据 ID 将空值替换为销售代表。我不一定需要覆盖空值,添加一个包含调整后的销售名称的列也可以。我在想也许可以使用基于唯一 ID 的案例组,但我没有运气。我有一个 table 这种类型的结构:
示例数据:
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
您可以使用 window 函数:
select t.*,
coalesce(SalesRep,
max(SalesRep) over (partition by id) as imputed_ SalesRep
)
from t;
我正在尝试根据 ID 列将字符串分配给空类别。我想要做的是根据 ID 将空值替换为销售代表。我不一定需要覆盖空值,添加一个包含调整后的销售名称的列也可以。我在想也许可以使用基于唯一 ID 的案例组,但我没有运气。我有一个 table 这种类型的结构:
示例数据:
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
您可以使用 window 函数:
select t.*,
coalesce(SalesRep,
max(SalesRep) over (partition by id) as imputed_ SalesRep
)
from t;