【问题标题】:DateDiff of dates in the same column from same group SQL来自同一组 SQL 的同一列中的日期的 DateDiff
【发布时间】:2021-05-24 19:51:47
【问题描述】:

我需要从同一用户获取订单与之前订单之间的天数差异

订单表:

customer_id    id       Activation_time
-----------------------------------------------------
1               1       2016-02-10 13:41:50.000
1               2       2018-03-10 18:42:45.000
1.              3       2019-05-18 15:55:04.000
.
.
.

我不知道,所以任何帮助将不胜感激!

提前致谢:)

【问题讨论】:

  • 第一行的2是怎么计算出来的?
  • 我的错,对不起。已经修好了

标签: mysql sql datetime datediff


【解决方案1】:

您可以使用窗口函数。它看起来像这样:

select o.*,
       datediff(activation_time, lag(activation_time) over (partition by  customer_id order by activation_time) as Days_since_last_order
from orders o;

请注意,这将返回NULL,以便最早激活。我不确定为什么您的数据有“2”。

我更喜欢NULL作为最早的日期,但如果你想要0,你可以使用:

select o.*,
       datediff(activation_time,
                lag(activation_time, 1, activation_time) over (partition by  customer_id order by activation_time
               ) as Days_since_last_order
from orders o;

即为LAG()添加一个默认参数。

【讨论】:

    猜你喜欢
    • 2021-11-29
    • 2019-08-15
    • 1970-01-01
    • 1970-01-01
    • 2022-10-17
    • 1970-01-01
    • 1970-01-01
    • 2020-04-21
    • 2022-01-03
    相关资源
    最近更新 更多