SlideShare uma empresa Scribd logo
1 de 6
Aula 003
Banco de Dados
PRONATEC
Programa Nacional de Acesso ao
Ensino Técnico e Emprego
PRONATEC
Programa Nacional de Acesso
ao Ensino Técnico e Emprego
1. Cláusula GROUP BY - Agrupar
• Considere a situação da seguinte consulta:
• “obter a comissão total para o vendedor ID=1”
• Com as cláusulas já vistas: where, order by não temos como
obter a não ser uma lista das vendas aos clientes feitas pelo
vendedor e suas respectivas comissões
• Para acumular todas as vendas em um só valor para um
mesmo vendedor temos que usar a cláusula GROUP BY
• GROUP BY agrupa os dados retornando um resultado
acumulado por funções de grupamento:
sum, count, max, min, last, avg.
• Assim, para obtermos a comissão total do vendedor 1:
Select sum(a.vendas * b.comissao/100)
from cliente a, vendedor b
where a.vendedor=b.id and b.id=1
group by b.id;
2. Funções de Agrupamento
• As funções de agrupamento: GROUP BY são
• SUM( ) – soma os valores específicos do grupamento
• COUNT( ) – conta quantos registros foram agrupados
• AVG( ) – calcula a média aritmética do agrupamento nos
valores especificados nos parâmetros entre “( )”
• MAX( ) – retorna o maior valor do grupamento
• MIN( ) – retorna o menor valor do grupamento
• LAST( ) – retorna o último valor do grupamento (MySQL)
• Algumas vezes devemos usar as funções MAX e MIN para
podermos obter um valor repetido de forma a aparecer
somente um vez no resultado da consulta
• Ex: Obter nome vendedor e comissões totais dos mesmos
Select MAX(b.nome), SUM(a.vendas * b.comissao/100)
from cliente a, vendedor b Group by b.id;
4. Exemplos de Group By
• Obter total das vendas do cliente que mais compra
Select MAX(vendas) from cliente;
• Obter média de comissão dos vendedores
Select AVG(comissao) from vendedor;
• Listar nomes e média de comissões de vendas por
vendedores em ordem alfabética
Select MAX(b.nome) as Vendedor, AVG(a.vendas *
b.comissao) as Media from cliente a,vendedor b where
a.vendedor=b.id group by b.id order by 1;
5. Condições em Agrupamentos
• Em uma consulta com GROUP BY podemos fazer uma
condicional para filtrar o resultado do grupamento. Para
essa finalidade devemos usar a cláusula HAVING ao
invés da já conhecida cláusula WHERE
• O HAVING pode considerar as funções de agrupamento
(MAX,MIN,SUM,AVG e COUNT) já a cláusula where não
pode fazer isso
• Exemplo: listar vendedores com comissões acima de 500
Select max(b.nome), sum(a.vendas * b.comissao/100)
Where a.vendedor=b.id Group By b.id
Having SUM(a.vendas * b.comissao/100)>500

Mais conteúdo relacionado

Destaque

IntervencióN Smh Tdt Y Publicidad
IntervencióN Smh  Tdt Y PublicidadIntervencióN Smh  Tdt Y Publicidad
IntervencióN Smh Tdt Y Publicidadmuriel sebas
 
DisertacióN
DisertacióNDisertacióN
DisertacióNtiapame
 
Pollock 13082008
Pollock 13082008Pollock 13082008
Pollock 13082008pollock
 
Entrega Excepción::.. 6 de Agosto
Entrega Excepción::.. 6 de AgostoEntrega Excepción::.. 6 de Agosto
Entrega Excepción::.. 6 de Agostoguest0c0dee
 
Outono - Maria Miranda
Outono - Maria MirandaOutono - Maria Miranda
Outono - Maria Mirandaeducacaoxxi
 
Pegn notícias - “conquistei o prazer de comandar a empresa da minha casa de...
Pegn   notícias - “conquistei o prazer de comandar a empresa da minha casa de...Pegn   notícias - “conquistei o prazer de comandar a empresa da minha casa de...
Pegn notícias - “conquistei o prazer de comandar a empresa da minha casa de...suafrankiavirtual
 
Tecnologí..
Tecnologí..Tecnologí..
Tecnologí..armiurtu
 
Basic Calibration001
Basic Calibration001Basic Calibration001
Basic Calibration001Ryan Holden
 
Rodriguez_THINK_TANK_Testimonial
Rodriguez_THINK_TANK_TestimonialRodriguez_THINK_TANK_Testimonial
Rodriguez_THINK_TANK_Testimonial​Iván Rodríguez
 
Lic en Nutricion Univ Maimonides(C2 Aditivos-TIA)
Lic en Nutricion Univ Maimonides(C2 Aditivos-TIA)Lic en Nutricion Univ Maimonides(C2 Aditivos-TIA)
Lic en Nutricion Univ Maimonides(C2 Aditivos-TIA)jimenuska
 
Errezil San Antonio jaiak 2013
Errezil San Antonio jaiak 2013Errezil San Antonio jaiak 2013
Errezil San Antonio jaiak 2013BASORLEGI
 
El analfabetismo y su relación con la educación temprana.Parte I
El analfabetismo y su relación con la educación temprana.Parte IEl analfabetismo y su relación con la educación temprana.Parte I
El analfabetismo y su relación con la educación temprana.Parte ICarlos Cherre Antón
 

Destaque (20)

Controldepracticas
ControldepracticasControldepracticas
Controldepracticas
 
2154 6028-1-98-pb
2154 6028-1-98-pb2154 6028-1-98-pb
2154 6028-1-98-pb
 
Bauhaus
BauhausBauhaus
Bauhaus
 
IntervencióN Smh Tdt Y Publicidad
IntervencióN Smh  Tdt Y PublicidadIntervencióN Smh  Tdt Y Publicidad
IntervencióN Smh Tdt Y Publicidad
 
DisertacióN
DisertacióNDisertacióN
DisertacióN
 
Pollock 13082008
Pollock 13082008Pollock 13082008
Pollock 13082008
 
EspañOl 5a SesióN
EspañOl 5a SesióNEspañOl 5a SesióN
EspañOl 5a SesióN
 
Entrega Excepción::.. 6 de Agosto
Entrega Excepción::.. 6 de AgostoEntrega Excepción::.. 6 de Agosto
Entrega Excepción::.. 6 de Agosto
 
Outono - Maria Miranda
Outono - Maria MirandaOutono - Maria Miranda
Outono - Maria Miranda
 
Pegn notícias - “conquistei o prazer de comandar a empresa da minha casa de...
Pegn   notícias - “conquistei o prazer de comandar a empresa da minha casa de...Pegn   notícias - “conquistei o prazer de comandar a empresa da minha casa de...
Pegn notícias - “conquistei o prazer de comandar a empresa da minha casa de...
 
Tecnologí..
Tecnologí..Tecnologí..
Tecnologí..
 
Trabajo
TrabajoTrabajo
Trabajo
 
Baocao
BaocaoBaocao
Baocao
 
Basic Calibration001
Basic Calibration001Basic Calibration001
Basic Calibration001
 
Rodriguez_THINK_TANK_Testimonial
Rodriguez_THINK_TANK_TestimonialRodriguez_THINK_TANK_Testimonial
Rodriguez_THINK_TANK_Testimonial
 
Rec Letter
Rec LetterRec Letter
Rec Letter
 
Lic en Nutricion Univ Maimonides(C2 Aditivos-TIA)
Lic en Nutricion Univ Maimonides(C2 Aditivos-TIA)Lic en Nutricion Univ Maimonides(C2 Aditivos-TIA)
Lic en Nutricion Univ Maimonides(C2 Aditivos-TIA)
 
Errezil San Antonio jaiak 2013
Errezil San Antonio jaiak 2013Errezil San Antonio jaiak 2013
Errezil San Antonio jaiak 2013
 
Task 2
Task 2Task 2
Task 2
 
El analfabetismo y su relación con la educación temprana.Parte I
El analfabetismo y su relación con la educación temprana.Parte IEl analfabetismo y su relación con la educación temprana.Parte I
El analfabetismo y su relación con la educación temprana.Parte I
 

Mais de Cláudio Amaral

DER - Diagrama de Entidade e Relacionamentos
DER - Diagrama de Entidade e RelacionamentosDER - Diagrama de Entidade e Relacionamentos
DER - Diagrama de Entidade e RelacionamentosCláudio Amaral
 
Projeto de Sistemas - Aula005
Projeto de Sistemas - Aula005Projeto de Sistemas - Aula005
Projeto de Sistemas - Aula005Cláudio Amaral
 
Projeto de Sistemas - Aula004
Projeto de Sistemas - Aula004Projeto de Sistemas - Aula004
Projeto de Sistemas - Aula004Cláudio Amaral
 
Projeto de Sistemas - Aula003
Projeto de Sistemas - Aula003Projeto de Sistemas - Aula003
Projeto de Sistemas - Aula003Cláudio Amaral
 
Projeto de Sistemas - Aula002
Projeto de Sistemas - Aula002Projeto de Sistemas - Aula002
Projeto de Sistemas - Aula002Cláudio Amaral
 
Banco de Dados II - Aula1
Banco de Dados II - Aula1Banco de Dados II - Aula1
Banco de Dados II - Aula1Cláudio Amaral
 
Projeto de Sistemas - Parte001
Projeto de Sistemas - Parte001Projeto de Sistemas - Parte001
Projeto de Sistemas - Parte001Cláudio Amaral
 
Sistema Operacional - Pratica002
Sistema Operacional - Pratica002Sistema Operacional - Pratica002
Sistema Operacional - Pratica002Cláudio Amaral
 
Sistema Operacional - Pratica001
Sistema Operacional - Pratica001Sistema Operacional - Pratica001
Sistema Operacional - Pratica001Cláudio Amaral
 
Sistema Operacional - Pratica003
Sistema Operacional - Pratica003Sistema Operacional - Pratica003
Sistema Operacional - Pratica003Cláudio Amaral
 
Sistema Operacional - Aula005
Sistema Operacional - Aula005Sistema Operacional - Aula005
Sistema Operacional - Aula005Cláudio Amaral
 
Sistema Operacional - Aula003
Sistema Operacional - Aula003Sistema Operacional - Aula003
Sistema Operacional - Aula003Cláudio Amaral
 
Sistema Operacional - Aula002
Sistema Operacional - Aula002Sistema Operacional - Aula002
Sistema Operacional - Aula002Cláudio Amaral
 
Sistema Operacional - Aula001
Sistema Operacional - Aula001Sistema Operacional - Aula001
Sistema Operacional - Aula001Cláudio Amaral
 
Sistema Operacional - Aula006
Sistema Operacional - Aula006Sistema Operacional - Aula006
Sistema Operacional - Aula006Cláudio Amaral
 
Sistema Operacional - Aula004
Sistema Operacional - Aula004Sistema Operacional - Aula004
Sistema Operacional - Aula004Cláudio Amaral
 

Mais de Cláudio Amaral (20)

DER - Diagrama de Entidade e Relacionamentos
DER - Diagrama de Entidade e RelacionamentosDER - Diagrama de Entidade e Relacionamentos
DER - Diagrama de Entidade e Relacionamentos
 
Projeto de Sistemas - Aula005
Projeto de Sistemas - Aula005Projeto de Sistemas - Aula005
Projeto de Sistemas - Aula005
 
Projeto de Sistemas - Aula004
Projeto de Sistemas - Aula004Projeto de Sistemas - Aula004
Projeto de Sistemas - Aula004
 
Projeto de Sistemas - Aula003
Projeto de Sistemas - Aula003Projeto de Sistemas - Aula003
Projeto de Sistemas - Aula003
 
Projeto de Sistemas - Aula002
Projeto de Sistemas - Aula002Projeto de Sistemas - Aula002
Projeto de Sistemas - Aula002
 
Banco de Dados II - Aula1
Banco de Dados II - Aula1Banco de Dados II - Aula1
Banco de Dados II - Aula1
 
Projeto de Sistemas - Parte001
Projeto de Sistemas - Parte001Projeto de Sistemas - Parte001
Projeto de Sistemas - Parte001
 
Programação-Aula004
Programação-Aula004Programação-Aula004
Programação-Aula004
 
Aplicativo aula006
Aplicativo aula006Aplicativo aula006
Aplicativo aula006
 
Aplicativo aula008
Aplicativo aula008Aplicativo aula008
Aplicativo aula008
 
Aplicativo aula007
Aplicativo aula007Aplicativo aula007
Aplicativo aula007
 
Sistema Operacional - Pratica002
Sistema Operacional - Pratica002Sistema Operacional - Pratica002
Sistema Operacional - Pratica002
 
Sistema Operacional - Pratica001
Sistema Operacional - Pratica001Sistema Operacional - Pratica001
Sistema Operacional - Pratica001
 
Sistema Operacional - Pratica003
Sistema Operacional - Pratica003Sistema Operacional - Pratica003
Sistema Operacional - Pratica003
 
Sistema Operacional - Aula005
Sistema Operacional - Aula005Sistema Operacional - Aula005
Sistema Operacional - Aula005
 
Sistema Operacional - Aula003
Sistema Operacional - Aula003Sistema Operacional - Aula003
Sistema Operacional - Aula003
 
Sistema Operacional - Aula002
Sistema Operacional - Aula002Sistema Operacional - Aula002
Sistema Operacional - Aula002
 
Sistema Operacional - Aula001
Sistema Operacional - Aula001Sistema Operacional - Aula001
Sistema Operacional - Aula001
 
Sistema Operacional - Aula006
Sistema Operacional - Aula006Sistema Operacional - Aula006
Sistema Operacional - Aula006
 
Sistema Operacional - Aula004
Sistema Operacional - Aula004Sistema Operacional - Aula004
Sistema Operacional - Aula004
 

Banco dedados aula003

  • 1. Aula 003 Banco de Dados PRONATEC Programa Nacional de Acesso ao Ensino Técnico e Emprego
  • 2. PRONATEC Programa Nacional de Acesso ao Ensino Técnico e Emprego
  • 3. 1. Cláusula GROUP BY - Agrupar • Considere a situação da seguinte consulta: • “obter a comissão total para o vendedor ID=1” • Com as cláusulas já vistas: where, order by não temos como obter a não ser uma lista das vendas aos clientes feitas pelo vendedor e suas respectivas comissões • Para acumular todas as vendas em um só valor para um mesmo vendedor temos que usar a cláusula GROUP BY • GROUP BY agrupa os dados retornando um resultado acumulado por funções de grupamento: sum, count, max, min, last, avg. • Assim, para obtermos a comissão total do vendedor 1: Select sum(a.vendas * b.comissao/100) from cliente a, vendedor b where a.vendedor=b.id and b.id=1 group by b.id;
  • 4. 2. Funções de Agrupamento • As funções de agrupamento: GROUP BY são • SUM( ) – soma os valores específicos do grupamento • COUNT( ) – conta quantos registros foram agrupados • AVG( ) – calcula a média aritmética do agrupamento nos valores especificados nos parâmetros entre “( )” • MAX( ) – retorna o maior valor do grupamento • MIN( ) – retorna o menor valor do grupamento • LAST( ) – retorna o último valor do grupamento (MySQL) • Algumas vezes devemos usar as funções MAX e MIN para podermos obter um valor repetido de forma a aparecer somente um vez no resultado da consulta • Ex: Obter nome vendedor e comissões totais dos mesmos Select MAX(b.nome), SUM(a.vendas * b.comissao/100) from cliente a, vendedor b Group by b.id;
  • 5. 4. Exemplos de Group By • Obter total das vendas do cliente que mais compra Select MAX(vendas) from cliente; • Obter média de comissão dos vendedores Select AVG(comissao) from vendedor; • Listar nomes e média de comissões de vendas por vendedores em ordem alfabética Select MAX(b.nome) as Vendedor, AVG(a.vendas * b.comissao) as Media from cliente a,vendedor b where a.vendedor=b.id group by b.id order by 1;
  • 6. 5. Condições em Agrupamentos • Em uma consulta com GROUP BY podemos fazer uma condicional para filtrar o resultado do grupamento. Para essa finalidade devemos usar a cláusula HAVING ao invés da já conhecida cláusula WHERE • O HAVING pode considerar as funções de agrupamento (MAX,MIN,SUM,AVG e COUNT) já a cláusula where não pode fazer isso • Exemplo: listar vendedores com comissões acima de 500 Select max(b.nome), sum(a.vendas * b.comissao/100) Where a.vendedor=b.id Group By b.id Having SUM(a.vendas * b.comissao/100)>500