У меня вопрос по бизнес-логике c, и я не знаю, как правильно сформулировать оператор sql для его получения. Я упросту бизнес-модель для облегчения обсуждения. У меня есть таблица с записью, какие клиенты купили какой продукт и в какой день.

Необходимо выяснить случаи, когда клиенты ) которые приобрели продукт B после приобретения продукта A. Я задал следующий вопрос:
select t."Customer",t."Date" "Date2", t."Product" "Product2",a.*
from
(
select "Customer","Date", "Product"
from test2 where "Product"='A'
) a,
test2 t
where a."Customer"= t."Customer" and t."Product"='B' and t."Date">=a."Date"
Это не совсем верно, так как он пересчитал количество экземпляров, потому что, если мы посмотрим на таблицу, клиент Я купил B после покупки A в 2 случаях, но мой запрос насчитал 3 раза

Случай, который я обвел, не должен учитываться. Есть ли способ это исправить? Для вашего удобства я приложил скрипт для создания таблицы TEST2.
CREATE TABLE "TEST2"
( "Customer" VARCHAR2(26 BYTE),
"Date" DATE,
"Product" VARCHAR2(26 BYTE)
);
Insert into TEST2 ("Customer","Date","Product") values ('1',to_date('07-AUG-18','DD-MON-RR'),'A');
Insert into TEST2 ("Customer","Date","Product") values ('1',to_date('07-AUG-18','DD-MON-RR'),'B');
Insert into TEST2 ("Customer","Date","Product") values ('1',to_date('17-AUG-18','DD-MON-RR'),'A');
Insert into TEST2 ("Customer","Date","Product") values ('1',to_date('27-SEP-18','DD-MON-RR'),'B');
Insert into TEST2 ("Customer","Date","Product") values ('2',to_date('26-SEP-18','DD-MON-RR'),'A');
Insert into TEST2 ("Customer","Date","Product") values ('3',to_date('01-OCT-18','DD-MON-RR'),'C');