如何按日期顺序计算日期之间的平均天数

时间:2019-09-10 11:25:49

标签: sql postgresql date postgresql-9.4

表中包含订单日期

create table orderdate ( orderdate date not null )

如何计算表中日期之间的平均天数。 需要计算日期顺序中相邻日期之间的差异,以找到订单之间的平均日期数。

将此数字添加到上一个订购日期将产生估计的下一个订购日期。

例如,如果表包含

2019-09-10
2019-09-21
2019-09-25

订单之间的差异为10天和4天,平均差异为

(10+4)/2 = 7 days

下一个订单的模拟日期为2019-09-25 + 7 = 2019-10-02

使用

PostgreSQL 9.4.19

2 个答案:

答案 0 :(得分:3)

您可以使用聚合:

extension View {
    func endEditing(_ force: Bool) {
        UIApplication.shared.windows.forEach { $0.endEditing(force)}
    }
}

间隙数比计数少一。因此,平均值是总持续时间除以间隔数。

答案 1 :(得分:2)

首先计算相邻日期之间的差,然后取平均值:

SELECT avg(CAST(days_between AS double precision))
FROM (SELECT orderdate
             - (lag(orderdate) OVER (ORDER BY orderdate)) AS days_between
      FROM orderdate) AS q;

我强制转换为double precision,因为两个date之间的差是integer