Один из подходов заключается в использовании агрегации:
select customer_id, min(date) as min_date
from t
group by customer_id
having min(date) >= date '2018-04-01 and
min(date) < date '2018-06-01';
Это получает список клиентов (что ваш запрос, кажется, делает). Чтобы получить счет, просто используйте count(*)
и сделайте это подзапросом.