WITH profiles AS ( SELECT u.user_id as user_id, DATE_TRUNC('month', MIN(e.event_time))::date AS start_date FROM tools_shop.events as e JOIN tools_shop.users as u ON e.user_id = u.user_id JOIN tools_shop.orders as o ON o.user_id = u.user_id GROUP BY u.user_id) SELECT DISTINCT p.start_date, p.user_id FROM profiles as p JOIN tools_shop.events as e ON e.user_id = p.user_id