【问题标题】:Calculate time difference between rows?计算行之间的时间差?
【发布时间】:2018-02-08 14:22:29
【问题描述】:

我希望有人可以提供帮助。我有一个如下所示的表格。

ModifyDate| ModifiedBy | TaskID |
2018-02-05| Bob        | 55444  |
2018-02-06| Lily       | 55444  |
2018-02-08| Sarah      | 55444  |

对于每一行,我需要计算每个 Modifydate 与每个 TaskID 之间的天数差异。

例如,我的输出应该如下所示:

ModifyDate| ModifiedBy | TaskID | Time
2018-02-05| Bob        | 55444  |  1
2018-02-06| Lily       | 55444  |  2
2018-02-08| Sarah      | 55444  | NULL

Sarah 是 NULL,因为她是最后一个修改任务的人。

这有意义吗?希望有人能帮忙

谢谢!

【问题讨论】:

标签: sql-server sql-server-2012


【解决方案1】:

这样的事情应该可以工作:

SELECT ModifyDate, ModifiedBy, TaskID,
       DATEDIFF(DAY, ModifyDate,
                     LEAD(ModifyDate) OVER (PARTITION BY TaskID  
                                            ORDER BY ModifyDate))
FROM mytable

Demo here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-23
    • 2019-11-11
    • 1970-01-01
    • 2019-01-11
    • 2014-09-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多