每组最大日期之间的天数

Days between max date in each group

我想知道每个订单之间的天数。我有每个订单的下达日期以及显示其第一、第二、第三等订单的参考

我想看看订单1和订单2之间有多少天,然后2和3之间有多少天等等。

select OrderID, OrderDate, RankOrder
from Orders

一些示例数据是:

Order 1 -> 01/01/2015 -> 1
Order 2 -> 03/01/2015 -> 2
Order 3 -> 10/01/2015 -> 3

我希望结果有一个包含天数的额外列:

Order 1 -> 01/01/2015 -> 1 -> 2
Order 2 -> 03/01/2015 -> 2 -> 7
Order 3 -> 10/01/2015 -> 3 -> 0

最后一个订单可能会查看当前日期以计算出 datediff。

因为你有排名功能,所以这只是一个带日期算术的join。使用 SQL 服务器的 datediff() 函数,这看起来像:

select o.*,
       datediff(day, o.OrderDate,
                coalesce(onext.OrderDate, getdate()) as diff
from orders o left join
     orders onext
     on o.rankorder = onext.rankorder - 1;

日期算法取决于数据库。