gpt4 book ai didi

sql - JOIN 当前行和上一行之间的范围

转载 作者:行者123 更新时间:2023-12-05 02:45:10 33 4
gpt4 key购买 nike

有人可以帮帮我吗?我有两个表:价格和间隔:

   Prices:           Intervals:
Price Interval_bound Category
16 5 cheap
11 10 cheap
9 15 median
26 20 median
6 25 expensive

我需要根据区间将类别值加入价格,其中 Interval_bound 是类别的最低边界:

Price  Category
16 median
11 cheap
9 cheap
26 expensive
6 cheap

我试过用

select Price, Category from Prices 
left join Intervals on Prices.Price interpolate previous value Interval.Interval_bound

但它只为类别提供了 NULL。我怎样才能以最简单的方式做到这一点?我正在使用 Vertica。

最佳答案

您可以使用lead() 获取下一个上限然后join:

select p.Price, i.Category
from Prices p left join
(select i.*,
lead(interval_bound) over (order by interval_bound) as next_interval_bound
from Intervals i
) i
on p.price >= i.interval_bound and
(p.price < i.next_interval_bound or i.next_interval_bound is null);

关于sql - JOIN 当前行和上一行之间的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66102193/

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