Bootstrap

SQL求平均销售等待时间

有一个Sales表,只包含日期列和顾客列,是否有办法在一条SQL语句中计算每个顾客在两次销售之间的平均天数?

表结构如下:

Create table Sales
(customer_name char(5) not null,
Sale_date date not null,
Primary key(customer_name, sale_date);

Insert into Sales values
insert into Sales values
("Fred", "1994-06-01"),
("Mary", "1994-06-01"),
("Bill", "1994-06-01"),
("Fred", "1994-06-02"),
("Bill", "1994-06-02"),
("Bill", "1994-06-03"),
("Bill", "1994-06-04"),
("Bill", "1994-06-05"),
("Bill", "1994-06-06"),
("Bill", "1994-06-07"),
("Fred", "1994-06-07"),
("Mary", "1994-06-08");



思路
1. 依次算出每个顾客在相邻的日期之间的平均天数,将所有的天数相加,再求平均。

 

 

 

 

 

 

 

 



思路1的实现说明了太聪明而想过了头了。而且sql也不是那么地好写。
考虑如下的数学式
(date2 – date1) + (date3 – date2) + (date4 – date3) + (date5 – date4) / 5;
事实上是等于(date5 – date1) / 5;
想到了新的SQL实现方式了吗?

 

;