Curso SQL - Unico - Aula06 - agregação - GROUP BY - SUM - COUNT
-
Upload
edson-mundin-ferreira -
Category
Documents
-
view
775 -
download
0
description
Transcript of Curso SQL - Unico - Aula06 - agregação - GROUP BY - SUM - COUNT
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]
www.unimake.com.br
• Agregações/agrupamentos
– GROUP BY
• Funções de Agregação
– COUNT
– SUM
– AVG
– MIN
– MAX
• Exercícios
Objetivos
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
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
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
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
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
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
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.
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