- Este tópico contém 1 resposta, 2 vozes e foi atualizado pela última vez 6 anos, 7 meses atrás por José Laurindo Chiappa.
-
AutorPosts
-
7 de maio de 2018 às 11:46 pm #109265Bruno MendesParticipante
Boa tarde,
Trabalho em um hospital onde temos um disparo de SMS a cada 12horas informando a quantidade das unidades livres de cada setor de internação. Exemplo:
Ala 1 – 3 un livres
Ala 2 – 2 un livres
UTI – 2 un livresO meu problema:
Preciso incluir um total geral em porcentagem da ocupação do hospital inteiro sem incluir uma nova coluna.Ala 1 – 3 un livres
Ala 2 – 2 un livres
UTI – 2 un livres
TOTAL = 74,26Algum gênio consegue me dar uma luz?
Grato desde já!!
8 de maio de 2018 às 1:02 am #109267José Laurindo ChiappaModeradorBlz ? Primeira coisa, pra vc poder calcular o percentual em cima de um total, vc TEM que ter o total geral…. Segunda coisa, no RDBMS Oracle, via de regra a maneira mais fácil de se calcular QUALQUER TIPO de running total (ou percent) é via ANALYTICS, as funções analíticas dão show….
Como vc não deu um exemplo, segue um exemplo inventado por mim : tenho o total geral de objetos no banco, quero agrupar por OWNER, e quero saber essa qtdade por owner quanto ela representa no total…. Antes de executar a query, deixa eu só formatar meu sqlplus :jlchiappa@DESENV:SQL>set pages 9999
jlchiappa@DESENV:SQL>compute sum of PERC on report
jlchiappa@DESENV:SQL>compute sum of QTD_NO_GRUPO on report
jlchiappa@DESENV:SQL>break on report==> OK, a query vai ser algo no estilo :
jlchiappa@DESENV:SQL>select owner, QTD_NO_GRUPO,
2 round(100*ratio_to_report(QTD_NO_GRUPO) over (), 2) perc
3 from (select owner, count(*) QTD_NO_GRUPO
4 from dba_objects
5 group by owner
6 )
7* order by 1, 2 desc;==> ó a execução dela :
OWNER QTD_NO_GRUPO PERC
—————- ———— ———
ABACO 2579 5,21
BEAUTYHATE 1 0
DBSNMP 50 ,1
FXESYS 282 ,57
IMPTST_ATUAL 139 ,28
IMPTST_GERAL 139 ,28
MDSYS 498 1,01
ORACLE_OCM 8 ,02
ORDPLUGINS 10 ,02
ORDSYS 1721 3,47
OUTLN 9 ,02
PUBLIC 19874 40,11
SCOTT 14 ,03
SI_INFORMTN_SCHEMA 8 ,02
SYS 22609 45,63
SYSTEM 452 ,91
TSMSYS 3 ,01
VARIABLE_IMPORT 159 ,32
WMSYS 315 ,64
XDB 674 1,36
———– ———
sum 49544 100,0120 linhas selecionadas.
C
jlchiappa@DESENV:SQL>select count(*) from dba_objects;COUNT(*)
———
49544==>> Sacou ?? Se vc quiser um exemplo mais próximo da sua realidade, manda pra gente uma versão *** RESUMIDA *** da tabela em questão (NÃO ROLA mandar a coisa enorme completa – versão RESUMIDA, só com as poucas colunas necessárias, PLZ!!), uns INSERTs pra popular alguns dados nela E mostre como obter o TOTAL, que aí eu aplico Analytics em cima…
[]s
Chiappa
-
AutorPosts
- Você deve fazer login para responder a este tópico.