gpt4 book ai didi

sql - 使用 SQL 将表 B 中的空值替换为表 A 中的值

转载 作者:行者123 更新时间:2023-11-29 14:28:06 25 4
gpt4 key购买 nike

我有一个这样的表:

price_families (Table A):
ID UPC
1 123
1 456
2 789
2 111
1 121

还有第二张表:

sales_volume (Table B): 
UPC sales volume
123 13.99 2.99
456 null null
121 14.99 1.99
789 31.88 22.99
111 null null
121 null null

我想要的是将表 B 中的空值替换为同一产品系列的不同 UPC 的销售/数量值(使用表 A 确定价格系列,加入 UPC)并按销售描述排序, volume desc(对于每个价格系列)。

执行此操作的最佳方法是什么?我可以在这里使用 coalesce() 还是 case 语句?

我的输出应该是这样的:

output (Table C): 
UPC sales volume
123 13.99 2.99
456 13.99 2.99
121 14.99 1.99
789 31.88 22.99
111 31.88 22.99
121 13.99 2.99

最佳答案

嗯。 . .一种方法使用元组进行赋值:

update b
set (sales, volume) = (select b2.sales, b2.volume
from b b2 join
a
on b2.upc = a.upc
where b2.sales is not null and b2.volume is not null
order by b2.sales desc, b2.volume desc
limit 1
)
where sales is null and volume is null;

编辑:

如果您只需要select 查询:

select b.upc,
coalesce(b.sales, b2.sales) as sales,
coalesce(b.volume, b2.volume) as volume
from b left join lateral
(select b2.sales, b2.volume
from b b2 join
a
on b2.upc = a.upc
where b2.sales is not null and b2.volume is not null
order by b2.sales desc, b2.volume desc
limit 1
) b2
on 1=1;

关于sql - 使用 SQL 将表 B 中的空值替换为表 A 中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55463276/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com