Curso SQL - Unico - Aula06 - agregação - GROUP BY - SUM - COUNT

10
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]

description

Curso SQL - Unico - Aula06 - agregação - GROUP BY - SUM - COUNT

Transcript of Curso SQL - Unico - Aula06 - agregação - GROUP BY - SUM - COUNT

Page 1: 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]

Page 2: Curso SQL - Unico - Aula06 - agregação - GROUP BY - SUM - COUNT

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

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

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

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

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

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

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

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

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