# 先找到满足要求的用户id
with t1 as (
    select user_id, count(id) as cnt
    from order_info
    where date >= '2025-10-15'
    and status = 'completed'
    and product_name in ("C++", "Java", "Python")
    group by user_id
    having cnt >= 2
)# 找到没开始的一次购买日期
select t1.user_id, a.first_buy_date, t1.cnt
from t1
left join (
    select user_id, min(date) as first_buy_date
    from order_info
    where user_id in (select user_id from t1)
    and date >= '2025-10-15'
    and status = 'completed'
    and product_name in ("C++", "Java", "Python")
    group by user_id
) as a
on t1.user_id = a.user_id
order by t1.user_id;