Você pode querer revisar a documentação sobre as especificações da janela (que é aqui ). O padrão é "intervalo entre" que define o intervalo pelos valores na linha. Você quer "linhas entre":
select grandtotal,
sum(grandtotal) over (order by agentname rows between unbounded preceding and current row)
from call;
Como alternativa, você pode incluir um
id
coluna na classificação para garantir a exclusividade e não ter que lidar com a questão de valores de chave iguais.