Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Calcular porcentagem SQL e exibir em uma cedula

Tenho uma tabela de clientes e seus status:

IdStatus
1A
2A
3C
4B

No caso a porcentagem por status somando todos os clientes representaria:

StatusPorcentagem
A50%
B25%
C25%

Tentaiva de query:

select  STATUS,cast( 100. * count(*) / sum(count(*)) over () as decimal(10,2))
from CLIENTES
group by STATUS 

Resultado:

Status
A50%
B25%
C25%

Não existe no banco uma tabela com a coluna porcentagem. E gostaria apenas de retornar a porcentagem de A exemplo de resultado:

Porcentagem
50%

Como fazer isso?

1 resposta
solução!

Olá! tudo bem?

Desculpe pela demora em obter retorno.

Para retornar apenas a porcentagem de A, você pode utilizar a mesma query que você já possui, mas adicionando uma cláusula WHERE para filtrar apenas o status A e para nomear a coluna porcentagem, utilize o alias (AS) em seguida o nome que você quer colocar. Ficaria assim:

SELECT CAST(100. * COUNT(*) / SUM(COUNT(*)) OVER () AS DECIMAL(10,2)) AS Porcentagem
FROM CLIENTES
WHERE STATUS = 'A'
GROUP BY STATUS

Dessa forma, a query irá retornar apenas a porcentagem de clientes com status A.

Espero ter ajudado

Caso surja alguma dúvida, fico à disposição.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!