Selecionando um subconjunto de linhas que excedem uma porcentagem do total de valores

Eu tenho uma tabela com clientes, usuários e receita semelhante à abaixo (na realidade, milhares de registros):

Customer   User    Revenue
001        James   500
002        James   750
003        James   450
004        Sarah   100
005        Sarah   500
006        Sarah   150
007        Sarah   600
008        James   150
009        James   100

O que eu quero fazer é retornar apenas os clientes com maiores gastos que representam 80% da receita total do usuário.

Para fazer isso manualmente, eu solicitava os clientes de James por sua receita, calculava a porcentagem do total e uma porcentagem total em execução e depois retornava registros apenas até o ponto em que o total em execução atingisse 80%:

Customer    User    Revenue     % of total  Running Total %
002         James   750         0.38        0.38 
001         James   500         0.26        0.64 
003         James   450         0.23        0.87  <- Greater than 80%, last record
008         James   150         0.08        0.95 
009         James   100         0.05        1.00 

Eu tentei usar um CTE, mas até agora ficaram em branco. Existe alguma maneira de fazer isso por meio de uma única consulta, em vez de manualmente em uma planilha do Excel?

questionAnswers(2)

yourAnswerToTheQuestion