1
我正在努力寻找SQL Server中客户级别上两个日期之间平均耗用天数的方法。客户级别的两个日期之间的平均耗用天数
SELECT
CUSTOMER,
VISIT_ID,
DAYIN_DATE,
DAYOUT_DATE,
RANK() OVER (PARTITION BY CUSTOMER ORDER BY VISIT_ID DESC) AS RANKING,
LAG(DAYOUT_DATE, 1)
OVER (PARTITION BY CUSTOMER ORDER BY VISIT_ID DESC) AS DATEOUT_DT,
LEAD(DAYIN_DATE, 1)
OVER (PARTITION BY CUSTOMER ORDER BY VISIT_ID DESC) AS DATEIN_DT,
(DATEIN_DT - DATEOUT_DT) AS LATENCY
FROM VISIT_TABLE
GROUP BY 1,2,3,4;
此代码以客户和访问(唯一ID),然后由DAYIN_DATE/DAYOUT_DATE排列。我已经编写了延迟和主导函数来帮助计算延迟,但是平均而言,它在客户级别上不是平均值。
我错过了什么?
结果:
CUSTOMER VISIT_ID CHECKIN_DATE CHECKOUT_DATE RANKING CHECKIN_DT CHECKOUT_DT LATENCY 999999999 1111111111 4/27/2015 4/28/2015 1 8/20/2014 (null) (null) 999999999 2222222222 8/20/2014 8/21/2014 2 8/19/2014 4/28/2015 252 999999999 3333333333 8/19/2014 8/20/2014 3 8/18/2014 8/21/2014 3 999999999 4444444444 8/18/2014 8/19/2014 4 8/17/2014 8/20/2014 3 999999999 5555555555 8/17/2014 8/18/2014 5 7/4/2014 8/19/2014 46 999999999 6666666666 7/4/2014 7/6/2014 6 4/15/2014 8/18/2014 125
期望的结果:
CUSTOMER_ID AVGLATENCY_PER_CUST 999999999 17 888888888 12
请提供采样数据和期望的结果。 –