题解 | #牛客的课程订单分析(五)#
牛客的课程订单分析(五)
https://www.nowcoder.com/practice/348afda488554ceb922efd2f3effc427
select
user_id,
first_buy_date,
second_buy_date,
count(1)
from
(select
o.user_id user_id,
first_value(o.date) over(partition by o.user_id order by o.date) as first_buy_date,
NTH_value(o.date,2) over(partition by o.user_id order by o.date ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) as second_buy_date
from
order_info o
where
o.status = "completed"
and o.date > "2025-10-15"
and (o.product_name = "C++"
or o.product_name = "Java"
or o.product_name = "Python")
and exists(
select
oi.user_id
from
order_info oi
where
oi.status = "completed"
and oi.date > "2025-10-15"
and (oi.product_name = "C++"
or oi.product_name = "Java"
or oi.product_name = "Python")
and oi.user_id = o.user_id
group by oi.user_id
having count(oi.user_id) >= 2
)) t
group by user_id, first_buy_date, second_buy_date
order by user_id

