What are the distinct names of customers who have purchased at least three different products?
select distinct t1.customer_name from customers as t1 join customer_orders as t2 on t1.customer_id = t2.customer_id join order_items as t3 on t2.order_id = t3.order_id group by t1.customer_id having count (distinct t3.product_id) >= 3