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...
2. Funções de Agrupamento
• As funções de agrupamento: GROUP BY são
• SUM( ) – soma os valores específicos do grupamento
•...
4. Exemplos de Group By
• Obter total das vendas do cliente que mais compra
Select MAX(vendas) from cliente;
• Obter média...
5. Condições em Agrupamentos
• Em uma consulta com GROUP BY podemos fazer uma
condicional para filtrar o resultado do grup...
Próximos SlideShares
Carregando em…5
×

Banco dedados aula003

316 visualizações

Publicada em

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
316
No SlideShare
0
A partir de incorporações
0
Número de incorporações
23
Ações
Compartilhamentos
0
Downloads
9
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Banco dedados aula003

  1. 1. Aula 003 Banco de Dados PRONATEC Programa Nacional de Acesso ao Ensino Técnico e Emprego
  2. 2. PRONATEC Programa Nacional de Acesso ao Ensino Técnico e Emprego
  3. 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. 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. 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. 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

×