![Page 1: Curso SQL - Unico - Aula06 - agregação - GROUP BY - SUM - COUNT](https://reader036.vdocuments.com.br/reader036/viewer/2022082703/5571f7d649795991698c1a04/html5/thumbnails/1.jpg)
www.unimake.com.br
Campo Mourão – PR (44) 3017-1247
Paranavaí – PR (44) 3423-4904
Desenvolver softwares que melhorem a vida das pessoas.
Édson Mundin Ferreira [email protected]
![Page 2: Curso SQL - Unico - Aula06 - agregação - GROUP BY - SUM - COUNT](https://reader036.vdocuments.com.br/reader036/viewer/2022082703/5571f7d649795991698c1a04/html5/thumbnails/2.jpg)
www.unimake.com.br
• Agregações/agrupamentos
– GROUP BY
• Funções de Agregação
– COUNT
– SUM
– AVG
– MIN
– MAX
• Exercícios
Objetivos
![Page 3: Curso SQL - Unico - Aula06 - agregação - GROUP BY - SUM - COUNT](https://reader036.vdocuments.com.br/reader036/viewer/2022082703/5571f7d649795991698c1a04/html5/thumbnails/3.jpg)
www.unimake.com.br
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.
Agregações / Agrupamentos
![Page 4: Curso SQL - Unico - Aula06 - agregação - GROUP BY - SUM - COUNT](https://reader036.vdocuments.com.br/reader036/viewer/2022082703/5571f7d649795991698c1a04/html5/thumbnails/4.jpg)
www.unimake.com.br
• Para se fazer um agrupamento de
registros uso a cláusula GROUP BY que
me possibilitará informar como meus
registros serão agrupados/resumidos
GROUP BY
SELECT gegrupo.fco, gegrupo.fde FROM gecad JOIN gegrupo ON gegrupo.fco = gecad.fgr GROUP BY gegrupo.fco, gegrupo.fde Retorna um
resumo dos grupos dos
clientes
![Page 5: Curso SQL - Unico - Aula06 - agregação - GROUP BY - SUM - COUNT](https://reader036.vdocuments.com.br/reader036/viewer/2022082703/5571f7d649795991698c1a04/html5/thumbnails/5.jpg)
www.unimake.com.br
• 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.
Funções de Agregação
![Page 6: Curso SQL - Unico - Aula06 - agregação - GROUP BY - SUM - COUNT](https://reader036.vdocuments.com.br/reader036/viewer/2022082703/5571f7d649795991698c1a04/html5/thumbnails/6.jpg)
www.unimake.com.br
• Conta a quantidade de linhas que um
determinado campo ocorre.
COUNT
SELECT COUNT(FCO) FROM gecad
Quantos clientes tem no cadastro
SELECT fgr, COUNT(*) FROM gecad GROUP BY fgr
Resume a quantidade de clientes por grupo
![Page 7: Curso SQL - Unico - Aula06 - agregação - GROUP BY - SUM - COUNT](https://reader036.vdocuments.com.br/reader036/viewer/2022082703/5571f7d649795991698c1a04/html5/thumbnails/7.jpg)
www.unimake.com.br
• Soma uma determinada coluna/expressão.
SUM
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
![Page 8: Curso SQL - Unico - Aula06 - agregação - GROUP BY - SUM - COUNT](https://reader036.vdocuments.com.br/reader036/viewer/2022082703/5571f7d649795991698c1a04/html5/thumbnails/8.jpg)
www.unimake.com.br
• Faz a média de uma determinada coluna /
expressão.
AVG
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
![Page 9: Curso SQL - Unico - Aula06 - agregação - GROUP BY - SUM - COUNT](https://reader036.vdocuments.com.br/reader036/viewer/2022082703/5571f7d649795991698c1a04/html5/thumbnails/9.jpg)
www.unimake.com.br
• Retorna o menor/maior valor encontrado no
conjunto de linhas, conforme expressão
informada.
MIN / MAX
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.
![Page 10: Curso SQL - Unico - Aula06 - agregação - GROUP BY - SUM - COUNT](https://reader036.vdocuments.com.br/reader036/viewer/2022082703/5571f7d649795991698c1a04/html5/thumbnails/10.jpg)
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