日期滞后函数

LAG Function over dates

select to_date(to_char(order_date, 'yyyymmdd'), 'yyyymmdd') -
         lag(to_date(to_char(order_date, 'yyyymmdd'), 'yyyymmdd'), 1, 0)
         over (order by order_id)
from orders

我想找出两个日期之间的天数差异,但是当我对日期应用滞后函数时,它 returns NUMBER 值 -

ORA-00932: inconsistent datatypes: expected DATE got NUMBER

尝试使用 TO_CHAR、CAST 进行一些转换,但收效甚微。 感谢您的帮助!

order_datedate 吗?如果是这样,对它执行 to_char 只是为了再次对其执行 to_date 是没有意义的(如果您只是想将 date 的时间部分设置为午夜,请使用 trunc(order_date)).假设它是 date

order_date - lag(order_date) over (order by order_id)  

应该是有效的语法。

但您似乎不太可能想知道连续订单之间的天数(这几乎肯定是一天的一小部分),而不是,比如说,同一客户的连续订单之间的天数这可能涉及在您的分析函数中使用 partition by 子句。