如何获取所有其余行(包括当前行)BY类别的滚动MIN编号

问题描述 投票:0回答:2

我有一个如下数据表,按数据,route_number和序列排序。

Delivery Date   Order_ID    Route_Number    Stop #  Sequence    Min Stop#   Formula 
12/11/2017         Z11         100201         2        1           1    MIN(D2:$D$6)
12/11/2017         Z12         100201         1        2           1    MIN(D3:$D$6)
12/11/2017         Z13         100201         3        3           3    MIN(D4:$D$6)
12/11/2017         Z14         100201         5        4           4    MIN(D5:$D$6)
12/11/2017         Z15         100201         4        5           4    MIN(D6:$D$6)

我想要做的是在我的SQL查询中,如何在excel中获得Min Stop#列。

逻辑是:给我从当前行到同一route_number中的所有其余行的最小停止#和交货日期,我正在考虑分配by delivery_date,route_number。

有没有人有想法?

谢谢

sql oracle
2个回答
0
投票
min(stop) over (partition by route_number, delivery_date
order by sequence rows between current row and unbounded following)

要么

min(stop) over (partition by route_number, delivery_date
order by sequence desc rows between unbounded preceding and current row)

这可以简化为

min(stop) over (partition by route_number, delivery_date
order by sequence desc) m2

因为在over子句中使用排序时,rows between unbounded preceding and current row是默认窗口。


1
投票

使用min窗口功能。

select t.*,min(stop) over(partition by route_number,delivery_date
                          order by sequence rows between current row 
                          and unbounded following) as min_stop
from tbl t
© www.soinside.com 2019 - 2024. All rights reserved.