02
2018
08

SQL语句:两次购买时间间隔

看到网上有人发帖子求助两次购买的时间间隔最大值的SQL语句,在实际做RFM分析的时候,通常会遇到这样的问题。


基本的表结构主要只有两列:用户名和date,其实总体来讲还是比较简单的。


正好自己也遇上这个问题,通过网上搜索和自己理解,编写了如下SQL语句:


SELECT
用户,
datediff(
date,
(
SELECT
max(date)
FROM
(
SELECT
用户名 AS 用户,
下单时间 AS date
FROM
订单表 WHERE 订单表.下单时间>'2018-07-01 00:00:00'
) AS Tab1
WHERE
用户 = a.用户
AND date < a.date
)
)
FROM
(
SELECT
用户名 AS 用户,
下单时间 AS date
FROM
订单表 WHERE 订单表.下单时间>'2018-07-01 00:00:00'
) AS a


语句的核心便是建立两个临时表,两个临时表做datediff,由于我的表较大,设定了下单时间的限制,这项限制在实际使用过程中可以进行去除。

« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

展开