我搜索了所有内容,但似乎找不到如何计算每个客户的两次订单之间的平均时间。我正在使用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 )