【问题标题】:PHP Oracle substraction from current row with previous rowPHP Oracle 从当前行减去前一行
【发布时间】:2021-01-04 06:41:21
【问题描述】:

我有如下数据:

Time      | Count
17:31:49
17:35:52
17:36:54
17:38:12
17:39:12
17:40:12
17:41:57
17:43:47
17:45:27
17:48:12
17:48:17

现在我需要用上一行减去当前行。

所以这将是这样的:

Time      | Count
17:31:49    formula: 17:35:52 - 17:31:49 = 04:03
17:35:52    formula: 17:36:54 - 17:35:52 = 01:02
17:36:54    formula: 17:38:12 - 17:36:54 = 01:58
17:38:12    and so on
17:39:12
17:40:12
17:41:57
17:43:47
17:45:27
17:48:12
17:48:17

是否可以仅使用查询进行计算或需要 PHP(我正在使用此)来执行此操作?

【问题讨论】:

    标签: php sql oracle


    【解决方案1】:

    基本上可以使用lead():

    select time, lead(time) over(order by time) - time diff
    from mytable
    

    不清楚time 的数据类型是什么。如果是DATE,那么可以减法,得到一个十进制数,代表天数之差;您可以格式化或使用算术来获得您想要的结果。

    如果是其他数据类型(字符串?),那么您需要构建自己的逻辑来处理减法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-10
      • 1970-01-01
      • 2022-01-26
      • 1970-01-01
      • 2019-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多