我搜索了所有内容,但似乎找不到如何计算每个客户的两次订单之间的平均时间。我正在使用Oracle SQL Developer。香港专业教育学院试图使用lag()函数没有喜悦。

以下示例数据显示了在3个不同情况下购买的客户。所有购买之间的平均时间为7.5天((6 + 9)/ 2)。

CustID   OrderDate
-------  ---------
1000000  14-AUG-12
1000000  23-AUG-12
1000000  29-AUG-12


那么,如何计算每个客户的平均值?

任何帮助将非常感激。

最佳答案

这里的关键是lag分析功能

select cust_id , avg(orderdate - lag_orderdate) as avg_time_between_orders
from (
    select cust_id , orderDate , lag(orderdate) over (partition by cust_id) as lag_orderdate
    from  orders )

10-07 19:34
查看更多