我想获得一份仅包含第二次购买日期的清单
我有以下列表:
Order_id User_id Purchase_date
1 1 01/01/2018
2 1 02/01/2018
3 1 02/01/2018
4 2 03/01/2018
5 2 03/01/2018
6 3 01/01/2018
7 3 02/01/2018
期望的结果:
user_id 2nd_purchase_date
1 02/01/20181
2 03/01/2018
3 02/01/2018
谢谢
答案 0 :(得分:1)
你可以这样做:
select user_id, Purchase_date AS '2nd_purchase_date'
from yourtable
where order_id in (
select min(order_id)
from yourtable T1
where order_id > (
select min(order_id)
from yourtable
where user_id = T1.user_id
)
group by user_id
)
答案 1 :(得分:0)
SELECT user_id, Purchase_date AS '2nd_purchase_date' FROM my_table LIMIT 1,1 GROUP BY user_id ORDER BY Purchase_date
答案 2 :(得分:0)
根据purchase_date正确排序order_id时,这是另一种选择。
SELECT user_id,
purchase_date as '2nd_purchase_date'
from (
SELECT a.order_id,
a.user_id,
a.Purchase_date,
count(b.user_id) + 1 as rank
FROM tbl a left join tbl b on a.order_id>b.order_id and a.user_id=b.user_id
GROUP by a.order_id,
a.user_id ) t
where t.rank = 2
order by user_id