Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Guaraci Lopes

Média a partir de soma

Recommended Posts

E aí pessoal beleza sou novo por aqui... vejam o cód. abaixo:

SELECT canal_demanda, COUNT(CANAL_DEMANDA) as total
from tabela 
WHERE tal = 'tal' 
AND to_date(data_ini, 'dd/MM/yy') >= to_date('01/03/2015' , 'dd/MM/yy') 
AND to_date(data_ini, 'dd/MM/yy') <= to_date('28/03/2015' , 'dd/MM/yy')
group by canal_demanda;

Até aqui beleza me traz certinho.

---------------------------------------------------------------

| CANAL_DEMANDA | TOTAL | % |

---------------------------------------------------------------

1 | CD | 3 | ? |

2 | E-MAIL | 2 | ? |

---------------------------------------------------------------

A pergunta é, tem como eu mostrar a porcentagem de cd e e-mail no sql? Tipo, mais uma coluna dizendo 60% de cd e 40% de e-mail?

Obs: esta coluna, canal_demanda, está em varchar2.

Obrigado pela ajuda. Ah, to usando o oracle.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hummm... dei uma olhada caa... a solução mais próxima seria o avg pra media... só que o tipo de dado é varchar... não sei com fazer... concatena sabe... mas valeu pela documentação...

Compartilhar este post


Link para o post
Compartilhar em outros sites

O tipo de dado não é varchar é numérico pois é feito um count

 

use sua sql

SELECT canal_demanda, COUNT(CANAL_DEMANDA) as total
from tabela
WHERE tal = 'tal'
AND to_date(data_ini, 'dd/MM/yy') >= to_date('01/03/2015' , 'dd/MM/yy')
AND to_date(data_ini, 'dd/MM/yy') <= to_date('28/03/2015' , 'dd/MM/yy')
group by canal_demanda;

como base para uma totalizadora

o exemplo Code Listing 9 deste artigo serve de base para o você quer.


Code Listing 9: Use RATIO_TO_REPORT to obtain the percentage of salaries

SQL> select last_name, first_name, department_id, hire_date, salary, round(RATIO_TO_REPORT(salary) over ()*100, 2) sal_percentage  2    from employee  3  order by department_id, salary desc, last_name, first_name;LAST_NAME      FIRST_NAME    DEPARTMENT_ID  HIRE_DATE  SALARY  SAL_PERCENTAGE———————————  ————————————   —————————————— ——————————  ——————  ——————————————Dovichi        Lori                     10  07-JUL-11Eckhardt       Emily                    10  07-JUL-04  100000          10.31Newton         Donald                   10  24-SEP-06   80000           8.25Michaels       Matthew                  10  16-MAY-07   70000           7.22Friedli        Roger                    10  16-MAY-07   60000           6.19James          Betsy                    10  16-MAY-07   60000           6.19peterson       michael                  20  03-NOV-08   90000           9.28leblanc        mark                     20  06-MAR-09   65000            6.7Jeffrey        Thomas                   30  27-FEB-10  300000          30.93Wong           Theresa                  30  27-FEB-10   70000           7.22Newton         Frances                      14-SEP-05   75000           7.7311 rows selected.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

O tipo de dado não é varchar é numérico pois é feito um count

 

use sua sql

SELECT canal_demanda, COUNT(CANAL_DEMANDA) as total
from tabela
WHERE tal = 'tal'
AND to_date(data_ini, 'dd/MM/yy') >= to_date('01/03/2015' , 'dd/MM/yy')
AND to_date(data_ini, 'dd/MM/yy') <= to_date('28/03/2015' , 'dd/MM/yy')
group by canal_demanda;

como base para uma totalizadora

o exemplo Code Listing 9 deste artigo serve de base para o você quer.

Code Listing 9: Use RATIO_TO_REPORT to obtain the percentage of salaries

SQL> select last_name, first_name, department_id, hire_date, salary, round(RATIO_TO_REPORT(salary) over ()*100, 2) sal_percentage  2    from employee  3  order by department_id, salary desc, last_name, first_name;LAST_NAME      FIRST_NAME    DEPARTMENT_ID  HIRE_DATE  SALARY  SAL_PERCENTAGE———————————  ————————————   —————————————— ——————————  ——————  ——————————————Dovichi        Lori                     10  07-JUL-11Eckhardt       Emily                    10  07-JUL-04  100000          10.31Newton         Donald                   10  24-SEP-06   80000           8.25Michaels       Matthew                  10  16-MAY-07   70000           7.22Friedli        Roger                    10  16-MAY-07   60000           6.19James          Betsy                    10  16-MAY-07   60000           6.19peterson       michael                  20  03-NOV-08   90000           9.28leblanc        mark                     20  06-MAR-09   65000            6.7Jeffrey        Thomas                   30  27-FEB-10  300000          30.93Wong           Theresa                  30  27-FEB-10   70000           7.22Newton         Frances                      14-SEP-05   75000           7.7311 rows selected.

Bahhh beleza cara... é fazer um sub select... me quebrei um pouco mas foi legal... Valeu mesmo Motta. Forte abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.