今天运营的同事有个需求是查询一段时间内的首单用户记录和复购率,以及复购的记录,首单用户记录用Group By 分组很容易就查出来了,可是这个复购给我整懵逼了,本来打算先排除首单用户,再分组,但是按这个思路写完后,数据就对不上了,鼓捣了好一阵子,最后换了个思路,终于实现了功能,代码如下。
SELECT a.*
FROM t_order a
WHERE a.order_id =
(
SELECT order_id
FROM t_order
WHERE userid = a.userid
ORDER BY create_time
LIMIT 1,1
)
ORDER BY a.userid
通过子查询每个用户的第二次购买的订单id,查询每个用户的复购记录。