Tenho a seguinte query abaixo que me retorna a origem , a contagem e o percentual de uma consulta.
SELECT origem, count(*) AS contagem,
count(origem) / (SELECT count(*) FROM atendimento_cad) * 100 as percentual
FROM atendimento_cad
GROUP BY origem order by percentual desc
origem contagem percentual
2000
5866
34.9875
3000
3099
18.4838
4000
2621
15.6328
porém preciso criar uma nova tabela para me retornar a soma do percentual ( acumulativo )ex:
origem contagem percentual Acumulado
2000 5866 34.9875 34.9875
3000 3099 18.4838 53.4713
4000 2621 15.6328 69.1041
e assim por diante até 100%
Boa Noite
Tenho uma tabela de preços, criei a seguinte query. Porém não estou conseguindo concluir
Preciso de uma ajuda! Nesse código preciso, tirar o percentual de aumento entre os procedimentos (CD_PROCEDIMENTO)
Os que tem data de vigência final são os valores anterior e os que não tem vigência final (null) são os valores atuais.
Preciso pegar o valor do (cd_procedimento) da data final (A.DT_FINAL_VIGENCIA) diminuir do mesmo valor do (cd_procedimento) só que da data de vigência final= null.
Daí tirar o percentual de quantos teve de aumento.
Será que alguém sabe como fazer esse calculo direto aqui nessa query .??
Atualmente ela trás o valor do procedimento atual e o ultimo com vigência final!
___________________________
SELECT DISTINCT
B.DS_CONVENIO,
TO_CHAR( A.DT_INICIO_VIGENCIA, 'DD/MM/YYYY')DT_INICIO_VIGENCIA,
TO_CHAR( A.DT_FINAL_VIGENCIA, 'DD/MM/YYYY')DT_FINAL_VIGENCIA,
A.VL_PROC_AJUSTADO,
A.CD_PROCEDIMENTO,
C.DS_PROC_INTERNO,
D.DS_PLANO
FROM REGRA_AJUSTE_PROC A
LEFT JOIN PROCEDIMENTO C ON (A.CD_PROCEDIMENTO = C.CD_PROCEDIMENTO)
LEFT JOIN CONVENIO B ON (A.CD_CONVENIO = B.CD_CONVENIO)
LEFT JOIN CONVENIO_PLANO D ON (A.CD_PLANO = D.CD_PLANO)
WHERE B.IE_SITUACAO = 'A'
AND C.DS_PROC_INTERNO IS NOT NULL
AND A.DT_FINAL_VIGENCIA IS NULL
UNION ALL
SELECT DISTINCT
B.DS_CONVENIO,
TO_CHAR( A.DT_INICIO_VIGENCIA, 'DD/MM/YYYY')DT_INICIO_VIGENCIA,
TO_CHAR( A.DT_FINAL_VIGENCIA, 'DD/MM/YYYY')DT_FINAL_VIGENCIA,
A.VL_PROC_AJUSTADO,
A.CD_PROCEDIMENTO,
C.DS_PROC_INTERNO,
D.DS_PLANO
FROM REGRA_AJUSTE_PROC A
LEFT JOIN PROCEDIMENTO C ON (A.CD_PROCEDIMENTO = C.CD_PROCEDIMENTO)
LEFT JOIN CONVENIO B ON (A.CD_CONVENIO = B.CD_CONVENIO)
LEFT JOIN CONVENIO_PLANO D ON (A.CD_PLANO = D.CD_PLANO)
WHERE B.IE_SITUACAO = 'A'
AND C.DS_PROC_INTERNO IS NOT NULL
AND TRUNC(A.DT_FINAL_VIGENCIA ) IN(
SELECT DISTINCT TRUNC(MAX(J.DT_FINAL_VIGENCIA))
FROM REGRA_AJUSTE_PROC J WHERE A.CD_CONVENIO = J.CD_CONVENIO)
ORDER BY 1,6