我有客户的订单数据表,并想找出平均。客户在进行第一次交易后进行第二次交易所需的天数,从第二次交易到第三次交易所需的天数,以此类推。示例表:
User ID Rank Time
111 1 01/08/17
111 2 05/08/17
111 3 08/08/17
111 4 10/08/17
111 5 15/08/17
111 6 20/08/17
112 1 07/08/17
112 2 08/08/17
112 3 09/08/17
112 4 10/08/17发布于 2017-09-04 14:17:45
取第一个日期,然后将每个日期与前一个日期进行比较:
set @d := (select date from yourTable where userid=111 and rank=1);
select rank, datediff( date, @d), @d:=date FROM yourTable;你会得到类似这样的结果:
1 0 2017-08-01
2 4 2017-08-05
3 3 2017-08-08
4 3 2017-08-11
5 6 2017-08-17然后在你的查询中添加一个小东西:
set @d := (select date from yourTable where userid=111 and rank=1);
select avg(days) from
(select rank, datediff( date, @d) days, @d:=date FROM yourTable) td;结果将是:
avg(days)
3.2000https://stackoverflow.com/questions/46030866
复制相似问题