题解 | #牛客的课程订单分析(五)#
牛客的课程订单分析(五)
http://www.nowcoder.com/practice/348afda488554ceb922efd2f3effc427
select yi.user_id,first_buy_date,second_buy_date,yi.cnt
from
(select user_id,date first_buy_date,cnt
from (
select user_id,date,cnt,rank()over(partition by user_id order by date) rk
from
(
select *, count(*)over(partition by user_id) cnt
from order_info
where date>'2025-10-15'
and product_name in ('C++','Java','Python')
and status='completed'
) t
where cnt>=2) m
where rk=1) yi
,
(select user_id,date second_buy_date,cnt
from (
select user_id,date,cnt,rank()over(partition by user_id order by date) rk
from
(
select *, count(*)over(partition by user_id) cnt
from order_info
where date>'2025-10-15'
and product_name in ('C++','Java','Python')
and status='completed'
) t
where cnt>=2) m
where rk=2) er
where yi.user_id=er.user_id
order by user_id
from
(select user_id,date first_buy_date,cnt
from (
select user_id,date,cnt,rank()over(partition by user_id order by date) rk
from
(
select *, count(*)over(partition by user_id) cnt
from order_info
where date>'2025-10-15'
and product_name in ('C++','Java','Python')
and status='completed'
) t
where cnt>=2) m
where rk=1) yi
,
(select user_id,date second_buy_date,cnt
from (
select user_id,date,cnt,rank()over(partition by user_id order by date) rk
from
(
select *, count(*)over(partition by user_id) cnt
from order_info
where date>'2025-10-15'
and product_name in ('C++','Java','Python')
and status='completed'
) t
where cnt>=2) m
where rk=2) er
where yi.user_id=er.user_id
order by user_id