gpt4 book ai didi

sql - 如何根据另一个表的值获取一个表的最大值

转载 作者:可可西里 更新时间:2023-11-01 15:56:28 24 4
gpt4 key购买 nike

我有两个数据表

表 A 以 yyyy-mm-dd 和区域(仅西、东可能)

effect_date  region
2013-01-01 west
2013-01-02 west
2013-01-10 west
2015-01-01 west
2015-01-02 west
2015-01-10 west

表 B in yyyy-mm-dd(从 2015-01-01 开始到当前日期,日期之间没有间隔)

run_date
01-01-2015 west
01-02-2015 west
.
.
.
03-27-2015 west

现在我想要表 A 的最大值小于表 B 的每一行。样本输出应该是

2013-01-10   2015-01-01 west
2015-01-01 2015-01-02 west
.
.
2015-01-02 2015-01-10 west
2015-01-10 2015-01-11 west

我不确定如何迭代表 B 的每一行,我的查询是

select max(effect_date), region from TableA b join TableA a on a.region = b.region where effect_date < run_date; --returning only 1 row

如有任何帮助,我们将不胜感激。谢谢

最佳答案

如果第二个表没有间隙,则可以使用连接和累积最大值:

select a.*,
max(a.effect_date) over (partition by b.region
order by b.run_date
) as effect_date
from b left join
a
on b.run_date = a.effect_date and b.region = a.region;

关于sql - 如何根据另一个表的值获取一个表的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43057270/

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