Sei sulla pagina 1di 10

Desenvolver softwares que melhorem a vida das pessoas.

Édson Mundin Ferreira


edson@unimake.com.br

Campo Mourão – PR Paranavaí – PR


(44) 3017-1247 (44) 3423-4904

www.unimake.com.br
Objetivos
• Agregações/agrupamentos
– GROUP BY
• Funções de Agregação
– COUNT
– SUM
– AVG
– MIN
– MAX
• Exercícios
www.unimake.com.br
Agregações / Agrupamentos

 Agregações / Agrupamentos fazem exatamente o que o


termo significa, agrupa/agrega registros fazendo um resumo
de um conjunto de linhas, ex.: quero saber quantos clientes
tenho no meu cadastro, quero saber um resumo das minhas
vendas por tipo de documento.

www.unimake.com.br
GROUP BY

• Para se fazer um agrupamento de


registros uso a cláusula GROUP BY que
me possibilitará informar como meus
registros serão agrupados/resumidos
SELECT gegrupo.fco, gegrupo.fde
FROM gecad
JOIN gegrupo ON gegrupo.fco = gecad.fgr
Retorna um GROUP BY gegrupo.fco, gegrupo.fde
resumo dos
grupos dos
clientes

www.unimake.com.br
Funções de Agregação

• Funções de agregação, permitem que a


partir de um conjunto de linhas seja
gerado um valor, ex.: uma contagem, uma
soma, uma média, etc.

www.unimake.com.br
COUNT

• Conta a quantidade de linhas que um


determinado campo ocorre.
SELECT COUNT(FCO) SELECT fgr, COUNT(*)
FROM gecad FROM gecad
GROUP BY fgr

Resume a
Quantos quantidade
clientes tem de clientes
no cadastro por grupo

www.unimake.com.br
SUM

• Soma uma determinada coluna/expressão.


SELECT TO_CHAR(fEmissao, 'mm-yyyy'), SUM(ftot_nota)
FROM fanfc
GROUP BY TO_CHAR(fEmissao, 'mm-yyyy')

Resume o
valor dos
documentos
por Mês/Ano

www.unimake.com.br
AVG

• Faz a média de uma determinada coluna /


expressão.
SELECT fanfc.ffilial,
fatip.fdescricao,
AVG(fanfc.ftot_nota-fanfc.ficms)
FROM fanfc
JOIN fatip ON fatip.fcodigo = fanfc.fcodtipo
GROUP BY fanfc.ffilial, fatip.fdescricao

Resume os documentos trazendo a


média do total do documento
deduzindo o ICMS e quebrando por
filial + tipo de documento
www.unimake.com.br
MIN / MAX

• Retorna o menor/maior valor encontrado no


conjunto de linhas, conforme expressão
informada.
SELECT fclifor, MIN(ftot_nota), MAX(ftot_nota)
FROM fanfc
GROUP BY fclifor
Retorna o menor e o maior
valor do conjunto de
documentos selecionados
de cada cliente.

www.unimake.com.br
EXERCÍCIOS

1. Fazer um select que me de o resultado conforme abaixo:


• Trazer todos titulos a receber (rpreceb) em aberto (NOT fquitado)
• quebrando por cliente (fco)
• filtrar apenas títulos em aberto e que o documento gerador (fanfc),
sejam de operação venda (Fatip.foperacao = ‘V’)
• que tenha as seguintes colunas:
– Código do cliente
– Nome do cliente
– Quantidade de títulos em aberto do cliente
– Menor valor dos títulos em aberto do cliente (fvd)
– Maior valor dos títulos em aberto do cliente
– Soma dos valores dos títulos do cliente
– Média dos valores dos títulos do cliente

www.unimake.com.br

Potrebbero piacerti anche