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?