私は分析関数を使っていくつかの例を試していますが、パーティションごとに異なるカウントを理解するためにSQLフィドルを作成しました。これが私のsqlfiddleです。
create table dummy (value1 varchar2(10),value2 varchar2(10));
insert into dummy values ('abc','abc1');
insert into dummy values ('abc','abc1');
insert into dummy values ('abc','abc2');
insert into dummy values ('def','abc1');
insert into dummy values ('ghi','abc2');
insert into dummy values ('xyz','abc3');
insert into dummy values ('xyz','abc3');
select value1,
value2,
count(distinct value2) over (partition by value1) as ValCount
from dummy
結果セットを見ると、3行目のvalcountは1であると予想されますが、代わりに2であり、その理由がわかりません。