SELECT 
    order_info_ext.user_id AS user_id, 
    MIN(date)  AS first_buy_date,
    COUNT(*)  AS cnt
FROM 
(
    SELECT 
        *, 
        COUNT(*) OVER(PARTITION BY user_id) AS cnt
    FROM 
        order_info 
    WHERE 
        date > '2025-10-15' 
    AND 
        product_name IN ('C++', 'Java', 'Python') 
    AND 
        status = 'completed' 
) AS order_info_ext
WHERE 
    order_info_ext.cnt >= 2
GROUP BY 
    order_info_ext.user_id