SlideShare uma empresa Scribd logo
Gerenciamento eGerenciamento e
Programação de Bancos deProgramação de Bancos de
DadosDados
Pitágoras Divinópolis
Profa. Andrea Alves
1
Funções SQL
 As funções SQL podem ser utilizadas
para
 Executar cálculos;
 Manipular saídas;
 Formatar Datas;
Tipos de Funções
 Caractere
 Número
 Data
Funções de Caractere
 Função de conversão de maiusculas
em minusculas:
 Lower, Upper
 Manipulação de Caracteres
 Substringt,Len
Funções de Caracter
 Lower (coluna) – Converte para
minusculas
 Upper (coluna) – converte para
maiusculas
 Substring (coluna, m, [n] )- retorna
caracteres a partir de m, n posições
 Len (coluna) – retorna o tamanho da
coluna
Exemplos
 select substring (nome_func,1,1)
from funcionario
 select lower (nome_func) from
funcionario
 select upper (nome_func) from
funcionario
 select len (nome_func) as ‘Tamanho',
nome_func from funcionario
Funções numéricas
 Sum – Soma valores de uma coluna específica
 Select sum (salario) from funcionario
 AVG – Retorna a média aritmética de uma
coluna
 select avg (nota) from nota
 Count – Conta o número de registros de uma
tabela
 Select count (codigo) from funcionario
 Max – Retorna o maior valor
 Select max(salario) from funcionário
 Min – Retorna o menor valor
 Select min(salario) from funcionario
Funções com datas
 GETDATE ( ) A função GETDATE retorna a
data e a hora atuais do sistema.
 SELECT GETDATE ( )
 DATEPART ( unidade , data ) A função
DATEPART retorna a parte especificada de uma
data como um inteiro. Observe os exemplos:
 SELECT DATEPART ( YEAR , '2006-01-02' )
 SELECT DATEPART ( MONTH , ‘2006-01-02' )
 SELECT DATEPART ( DAY , ‘2006-01-02' )
Funções com datas
 DATEADD ( unidade , numero_unid,data ) A
função DATEADD retorna uma nova data através
da soma do número de unidades especificadas
pelo valor unidade a uma data. Observe os
exemplos:
 SELECT DATEADD ( DAY ,6, ‘2006-02-01' )
 SELECT DATEADD ( MONTH ,6, '2006-02-01' )
 SELECT DATEADD ( YEAR ,6, '2006-02-01' )
Funções de data
 DATEDIFF ( unidade , data1,data2 ) A
função DATEDIFF calcula a diferença entre
as datas data2 e data1 , retornando o
resultado como um inteiro, cuja unidade é
definida pelo valor unidade . Observe os
exemplos:
 SELECT DATEDIFF ( DAY , ‘2006-01-01'
, ’2006-10-27' )
 SELECT DATEDIFF ( MONTH , ‘2006-01-
01' , ’2006-10-27' )
 SELECT DATEDIFF ( YEAR , ‘2006-01-
01' , ’2006-10-27' )
Exercícios
CodigoCargo Cargo Salário
1 Assistente Administrativo R$ 1.000,00
2 Operador de Telemarketing R$ 1.200,00
3 Recepcionista R$ 850,00
4 Programador Pleno R$ 2.500,00
5 Analista de Sistemas Sênior R$ 6.000,00
Exercícios
Codigo Nome Data admissão CodigoCargo
1 Helena de Morais Camargo
10/08/2007
2
2 Cássia Silva Mendes 05/06/2016 3
3 Roberto Gouveia Mattos 04/01/2015 5
Exercícios
1.Selecione todos os funcionários e seus
respectivos cargos
2.Mostre o maior e o menor salários da
empresa.
3. Selecione o total de recepcionistas
existentes na empresa
4. Selecione a média de salário dos
funcionários da empresa
5. Mostre a quantos dias os funcionários
trabalham na empresa
Clausula Group By
 A instrução SELECT possui duas cláusulas
poderosas, pouco compreendidas e usadas:
GROUP BY e HAVING.
 A cláusula GROUP BY organiza dados em
grupos, produzindo sumários. A cláusula
HAVING estabelece condições para listar esses
grupos. Dizemos que a cláusula HAVING está
para a cláusula GROUP BY, assim como a
cláusula WHERE está para o comando SELECT.
 A sintaxe do comando SELECT com as
cláusulas GROUP BY e HAVING é:
 SELECT <coluna(s)>
FROM <tabela>
WHERE <condições>
GROUP BY <coluna(s)>
HAVING <condições>
GROUP BY
 Considere a tabela
Projeto SistemaSistema PessoaPessoa HorasHoras
S1S1 P1P1 300300
S1S1 P2P2 200200
S1S1 P3P3 400400
S1S1 P4P4 200200
S1S1 P5P5 100100
S1S1 P6P6 100100
S2S2 P1P1 300300
S2S2 P2P2 400400
S3S3 P2P2 200200
S4S4 P2P2 200200
S4S4 P4P4 300300
S4S4 P5P5 400400
Funções de Agrupamento
 Desejamos saber o somatório de
horas totais por pessoa
 Apenas SUM(horas):
SELECT SUM(horas) FROM projeto;
HorasHoras
31003100
Foi conseguido o total de horas de toda tabela !!
Não o que foi pedido !!!
Funções de Agrupamento
 Entender por qual atributo será feita
a contagem.
 Desejamos saber o somatório de
horas totais por pessoa
 SELECT Pessoa,SUM(horas) FROM
projeto GROUP BY pessoa
Funções de agrupamento
 SELECT Pessoa,SUM(horas) FROM projeto GROUP
BY pessoa
SistemaSistema PessoaPessoa HorasHoras
S1S1 P1P1 300300
S1S1 P2P2 200200
S1S1 P3P3 400400
S1S1 P4P4 200200
S1S1 P5P5 100100
S1S1 P6P6 100100
S2S2 P1P1 300300
S2S2 P2P2 400400
S3S3 P2P2 200200
S4S4 P2P2 200200
S4S4 P4P4 300300
S4S4 P5P5 400400
P1 600
P2 1000
P3 400
P4 500
P5 500
SUM(horas)
Função de Agrupamento
 O resultado obtido pela sentença
 SELECT Pessoa,SUM(horas) FROM projeto GROUP BY
pessoa
 É o re-arranjo da tabela
base(projeto) em grupos de linhas :
 Um item para cada grupo distinto
(pessoa)
 Extração da parte correspondente e da
quantidade para cada um dos grupos
Função de agrupamento
 E se sobre os grupos obtidos na
consulta,
 SELECT Pessoa,SUM(horas) FROM
projeto GROUP BY pessoa
 ainda se desejar fazer um filtro
através de uma condição
 Como total de horas superior a 550
horas
Having
 A cláusula apropriada para tal
 SELECT Pessoa,SUM(horas) FROM
projeto GROUP BY pessoa HAVING
SUM(horas) >550
P1 600
P2 1000
P3 400
P4 500
P5 500
SUM(horas)
HAVING
SUM
(horas)
> 550
P1P1 600600
P2P2 10001000
Clausula Group By
 Imagine a tabela Vendas com os seguintes cam
 Cod_venda vendedor Data Valor
 1 Andrea 14/04 600
 2 Bento 15/04 1000
 3 Aguinaldo 18/04 1200
 4 José 17/04 1800
 5 Pedro 16/04 1400
 6 Aline 15/04 1600
 7 Maria 14/04 800
Exercícios
 1)Qual o total das vendas de cada
vendedor?
 2)Quantas vendas cada vendedor
fez?

Exercícios
 6)Qual a menor e a maior?
 7)Qual a média das vendas dos dias
15 e 17?
 8)Em quantos dias as vendas
superaram 3.000?
 9)Que vendedores fecharam mais
de 2 vendas?
Clausula Group By

Mais conteúdo relacionado

Semelhante a Agrupamento

Algoritmos e Estrutura de Dados - Aula 03
Algoritmos e Estrutura de Dados - Aula 03Algoritmos e Estrutura de Dados - Aula 03
Algoritmos e Estrutura de Dados - Aula 03
thomasdacosta
 
aula-2-estrutura-e-politica-salarial.ppt
aula-2-estrutura-e-politica-salarial.pptaula-2-estrutura-e-politica-salarial.ppt
aula-2-estrutura-e-politica-salarial.ppt
Natanael Ferreira
 
Sql - Comandos dml do mysql - parte 1
Sql - Comandos dml do mysql - parte 1Sql - Comandos dml do mysql - parte 1
Sql - Comandos dml do mysql - parte 1
Arley Rodrigues
 
Excel2010 avancado
Excel2010 avancadoExcel2010 avancado
Excel2010 avancado
Joao Maria John Sincero
 
Programação Estruturada 2 - Aula 02
Programação Estruturada 2 - Aula 02Programação Estruturada 2 - Aula 02
Programação Estruturada 2 - Aula 02
thomasdacosta
 
Excel 2010 avançado marcos paulo furlan
Excel 2010 avançado   marcos paulo furlanExcel 2010 avançado   marcos paulo furlan
Excel 2010 avançado marcos paulo furlan
gisa_legal
 
Excel 2010 avancado
Excel 2010 avancadoExcel 2010 avancado
Excel 2010 avancado
Fernando Palma
 
LabMM4 (T08 - 12/13) - SQL continuação
LabMM4 (T08 - 12/13) - SQL continuaçãoLabMM4 (T08 - 12/13) - SQL continuação
LabMM4 (T08 - 12/13) - SQL continuação
Carlos Santos
 
Aula 03 - Identificando e tratando padrões
Aula 03 - Identificando e tratando padrõesAula 03 - Identificando e tratando padrões
Aula 03 - Identificando e tratando padrões
Dalton Martins
 
Aula 7 sql - select
Aula 7   sql - selectAula 7   sql - select
Aula 7 sql - select
Hélio Martins
 
IPT defesa Wagner F Canto v6
IPT defesa Wagner F Canto v6IPT defesa Wagner F Canto v6
IPT defesa Wagner F Canto v6
wfcanto
 
Listas saod inamicas20172
Listas saod inamicas20172Listas saod inamicas20172
Listas saod inamicas20172
Claudia Ferlin
 
Excel - Aula 05.pptx
Excel - Aula 05.pptxExcel - Aula 05.pptx
Excel - Aula 05.pptx
SrgioSilva828129
 
Testes nao funcionais 1
Testes nao funcionais 1Testes nao funcionais 1
Testes nao funcionais 1
Nauber Gois
 
Curso Básico de R
Curso Básico de RCurso Básico de R
Curso Básico de R
Roberto de Pinho
 
Apostila 2 geogebra
Apostila 2 geogebraApostila 2 geogebra
Apostila 2 geogebra
Franbfk
 
08 LabMM4 - Bases de dados
08 LabMM4 - Bases de dados08 LabMM4 - Bases de dados
08 LabMM4 - Bases de dados
Carlos Santos
 
Módulo 02 funções ( fórmulas) do excel
Módulo 02   funções ( fórmulas) do excelMódulo 02   funções ( fórmulas) do excel
Módulo 02 funções ( fórmulas) do excel
Gilberto De Oliveira Mendes
 
Linguagem mdx
Linguagem mdxLinguagem mdx
Linguagem mdx
Rudi Barbosa
 
Pro3 03 e_dados_complexos
Pro3 03 e_dados_complexosPro3 03 e_dados_complexos
Pro3 03 e_dados_complexos
Luiz Otavio Da Silva Ladeira
 

Semelhante a Agrupamento (20)

Algoritmos e Estrutura de Dados - Aula 03
Algoritmos e Estrutura de Dados - Aula 03Algoritmos e Estrutura de Dados - Aula 03
Algoritmos e Estrutura de Dados - Aula 03
 
aula-2-estrutura-e-politica-salarial.ppt
aula-2-estrutura-e-politica-salarial.pptaula-2-estrutura-e-politica-salarial.ppt
aula-2-estrutura-e-politica-salarial.ppt
 
Sql - Comandos dml do mysql - parte 1
Sql - Comandos dml do mysql - parte 1Sql - Comandos dml do mysql - parte 1
Sql - Comandos dml do mysql - parte 1
 
Excel2010 avancado
Excel2010 avancadoExcel2010 avancado
Excel2010 avancado
 
Programação Estruturada 2 - Aula 02
Programação Estruturada 2 - Aula 02Programação Estruturada 2 - Aula 02
Programação Estruturada 2 - Aula 02
 
Excel 2010 avançado marcos paulo furlan
Excel 2010 avançado   marcos paulo furlanExcel 2010 avançado   marcos paulo furlan
Excel 2010 avançado marcos paulo furlan
 
Excel 2010 avancado
Excel 2010 avancadoExcel 2010 avancado
Excel 2010 avancado
 
LabMM4 (T08 - 12/13) - SQL continuação
LabMM4 (T08 - 12/13) - SQL continuaçãoLabMM4 (T08 - 12/13) - SQL continuação
LabMM4 (T08 - 12/13) - SQL continuação
 
Aula 03 - Identificando e tratando padrões
Aula 03 - Identificando e tratando padrõesAula 03 - Identificando e tratando padrões
Aula 03 - Identificando e tratando padrões
 
Aula 7 sql - select
Aula 7   sql - selectAula 7   sql - select
Aula 7 sql - select
 
IPT defesa Wagner F Canto v6
IPT defesa Wagner F Canto v6IPT defesa Wagner F Canto v6
IPT defesa Wagner F Canto v6
 
Listas saod inamicas20172
Listas saod inamicas20172Listas saod inamicas20172
Listas saod inamicas20172
 
Excel - Aula 05.pptx
Excel - Aula 05.pptxExcel - Aula 05.pptx
Excel - Aula 05.pptx
 
Testes nao funcionais 1
Testes nao funcionais 1Testes nao funcionais 1
Testes nao funcionais 1
 
Curso Básico de R
Curso Básico de RCurso Básico de R
Curso Básico de R
 
Apostila 2 geogebra
Apostila 2 geogebraApostila 2 geogebra
Apostila 2 geogebra
 
08 LabMM4 - Bases de dados
08 LabMM4 - Bases de dados08 LabMM4 - Bases de dados
08 LabMM4 - Bases de dados
 
Módulo 02 funções ( fórmulas) do excel
Módulo 02   funções ( fórmulas) do excelMódulo 02   funções ( fórmulas) do excel
Módulo 02 funções ( fórmulas) do excel
 
Linguagem mdx
Linguagem mdxLinguagem mdx
Linguagem mdx
 
Pro3 03 e_dados_complexos
Pro3 03 e_dados_complexosPro3 03 e_dados_complexos
Pro3 03 e_dados_complexos
 

Mais de Andrea Alves

Aula 01
Aula 01Aula 01
Aula 01
Andrea Alves
 
U1 s1 aula
U1 s1   aulaU1 s1   aula
U1 s1 aula
Andrea Alves
 
Tes ii aula 1 - unis
Tes ii   aula 1 - unisTes ii   aula 1 - unis
Tes ii aula 1 - unis
Andrea Alves
 
Aula 1
Aula 1Aula 1
Aula 1
Andrea Alves
 
Aula vii lógica
Aula vii   lógicaAula vii   lógica
Aula vii lógica
Andrea Alves
 
Curso opencart - Professora Andrea Alves
Curso opencart - Professora Andrea AlvesCurso opencart - Professora Andrea Alves
Curso opencart - Professora Andrea Alves
Andrea Alves
 

Mais de Andrea Alves (6)

Aula 01
Aula 01Aula 01
Aula 01
 
U1 s1 aula
U1 s1   aulaU1 s1   aula
U1 s1 aula
 
Tes ii aula 1 - unis
Tes ii   aula 1 - unisTes ii   aula 1 - unis
Tes ii aula 1 - unis
 
Aula 1
Aula 1Aula 1
Aula 1
 
Aula vii lógica
Aula vii   lógicaAula vii   lógica
Aula vii lógica
 
Curso opencart - Professora Andrea Alves
Curso opencart - Professora Andrea AlvesCurso opencart - Professora Andrea Alves
Curso opencart - Professora Andrea Alves
 

Último

Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
Danilo Pinotti
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Gabriel de Mattos Faustino
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
Faga1939
 

Último (7)

Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
 

Agrupamento

  • 1. Gerenciamento eGerenciamento e Programação de Bancos deProgramação de Bancos de DadosDados Pitágoras Divinópolis Profa. Andrea Alves 1
  • 2. Funções SQL  As funções SQL podem ser utilizadas para  Executar cálculos;  Manipular saídas;  Formatar Datas;
  • 3. Tipos de Funções  Caractere  Número  Data
  • 4. Funções de Caractere  Função de conversão de maiusculas em minusculas:  Lower, Upper  Manipulação de Caracteres  Substringt,Len
  • 5. Funções de Caracter  Lower (coluna) – Converte para minusculas  Upper (coluna) – converte para maiusculas  Substring (coluna, m, [n] )- retorna caracteres a partir de m, n posições  Len (coluna) – retorna o tamanho da coluna
  • 6. Exemplos  select substring (nome_func,1,1) from funcionario  select lower (nome_func) from funcionario  select upper (nome_func) from funcionario  select len (nome_func) as ‘Tamanho', nome_func from funcionario
  • 7. Funções numéricas  Sum – Soma valores de uma coluna específica  Select sum (salario) from funcionario  AVG – Retorna a média aritmética de uma coluna  select avg (nota) from nota  Count – Conta o número de registros de uma tabela  Select count (codigo) from funcionario  Max – Retorna o maior valor  Select max(salario) from funcionário  Min – Retorna o menor valor  Select min(salario) from funcionario
  • 8. Funções com datas  GETDATE ( ) A função GETDATE retorna a data e a hora atuais do sistema.  SELECT GETDATE ( )  DATEPART ( unidade , data ) A função DATEPART retorna a parte especificada de uma data como um inteiro. Observe os exemplos:  SELECT DATEPART ( YEAR , '2006-01-02' )  SELECT DATEPART ( MONTH , ‘2006-01-02' )  SELECT DATEPART ( DAY , ‘2006-01-02' )
  • 9. Funções com datas  DATEADD ( unidade , numero_unid,data ) A função DATEADD retorna uma nova data através da soma do número de unidades especificadas pelo valor unidade a uma data. Observe os exemplos:  SELECT DATEADD ( DAY ,6, ‘2006-02-01' )  SELECT DATEADD ( MONTH ,6, '2006-02-01' )  SELECT DATEADD ( YEAR ,6, '2006-02-01' )
  • 10. Funções de data  DATEDIFF ( unidade , data1,data2 ) A função DATEDIFF calcula a diferença entre as datas data2 e data1 , retornando o resultado como um inteiro, cuja unidade é definida pelo valor unidade . Observe os exemplos:  SELECT DATEDIFF ( DAY , ‘2006-01-01' , ’2006-10-27' )  SELECT DATEDIFF ( MONTH , ‘2006-01- 01' , ’2006-10-27' )  SELECT DATEDIFF ( YEAR , ‘2006-01- 01' , ’2006-10-27' )
  • 11. Exercícios CodigoCargo Cargo Salário 1 Assistente Administrativo R$ 1.000,00 2 Operador de Telemarketing R$ 1.200,00 3 Recepcionista R$ 850,00 4 Programador Pleno R$ 2.500,00 5 Analista de Sistemas Sênior R$ 6.000,00
  • 12. Exercícios Codigo Nome Data admissão CodigoCargo 1 Helena de Morais Camargo 10/08/2007 2 2 Cássia Silva Mendes 05/06/2016 3 3 Roberto Gouveia Mattos 04/01/2015 5
  • 13. Exercícios 1.Selecione todos os funcionários e seus respectivos cargos 2.Mostre o maior e o menor salários da empresa. 3. Selecione o total de recepcionistas existentes na empresa 4. Selecione a média de salário dos funcionários da empresa 5. Mostre a quantos dias os funcionários trabalham na empresa
  • 14. Clausula Group By  A instrução SELECT possui duas cláusulas poderosas, pouco compreendidas e usadas: GROUP BY e HAVING.  A cláusula GROUP BY organiza dados em grupos, produzindo sumários. A cláusula HAVING estabelece condições para listar esses grupos. Dizemos que a cláusula HAVING está para a cláusula GROUP BY, assim como a cláusula WHERE está para o comando SELECT.  A sintaxe do comando SELECT com as cláusulas GROUP BY e HAVING é:  SELECT <coluna(s)> FROM <tabela> WHERE <condições> GROUP BY <coluna(s)> HAVING <condições>
  • 15. GROUP BY  Considere a tabela Projeto SistemaSistema PessoaPessoa HorasHoras S1S1 P1P1 300300 S1S1 P2P2 200200 S1S1 P3P3 400400 S1S1 P4P4 200200 S1S1 P5P5 100100 S1S1 P6P6 100100 S2S2 P1P1 300300 S2S2 P2P2 400400 S3S3 P2P2 200200 S4S4 P2P2 200200 S4S4 P4P4 300300 S4S4 P5P5 400400
  • 16. Funções de Agrupamento  Desejamos saber o somatório de horas totais por pessoa  Apenas SUM(horas): SELECT SUM(horas) FROM projeto; HorasHoras 31003100 Foi conseguido o total de horas de toda tabela !! Não o que foi pedido !!!
  • 17. Funções de Agrupamento  Entender por qual atributo será feita a contagem.  Desejamos saber o somatório de horas totais por pessoa  SELECT Pessoa,SUM(horas) FROM projeto GROUP BY pessoa
  • 18. Funções de agrupamento  SELECT Pessoa,SUM(horas) FROM projeto GROUP BY pessoa SistemaSistema PessoaPessoa HorasHoras S1S1 P1P1 300300 S1S1 P2P2 200200 S1S1 P3P3 400400 S1S1 P4P4 200200 S1S1 P5P5 100100 S1S1 P6P6 100100 S2S2 P1P1 300300 S2S2 P2P2 400400 S3S3 P2P2 200200 S4S4 P2P2 200200 S4S4 P4P4 300300 S4S4 P5P5 400400 P1 600 P2 1000 P3 400 P4 500 P5 500 SUM(horas)
  • 19. Função de Agrupamento  O resultado obtido pela sentença  SELECT Pessoa,SUM(horas) FROM projeto GROUP BY pessoa  É o re-arranjo da tabela base(projeto) em grupos de linhas :  Um item para cada grupo distinto (pessoa)  Extração da parte correspondente e da quantidade para cada um dos grupos
  • 20. Função de agrupamento  E se sobre os grupos obtidos na consulta,  SELECT Pessoa,SUM(horas) FROM projeto GROUP BY pessoa  ainda se desejar fazer um filtro através de uma condição  Como total de horas superior a 550 horas
  • 21. Having  A cláusula apropriada para tal  SELECT Pessoa,SUM(horas) FROM projeto GROUP BY pessoa HAVING SUM(horas) >550 P1 600 P2 1000 P3 400 P4 500 P5 500 SUM(horas) HAVING SUM (horas) > 550 P1P1 600600 P2P2 10001000
  • 22. Clausula Group By  Imagine a tabela Vendas com os seguintes cam  Cod_venda vendedor Data Valor  1 Andrea 14/04 600  2 Bento 15/04 1000  3 Aguinaldo 18/04 1200  4 José 17/04 1800  5 Pedro 16/04 1400  6 Aline 15/04 1600  7 Maria 14/04 800
  • 23. Exercícios  1)Qual o total das vendas de cada vendedor?  2)Quantas vendas cada vendedor fez? 
  • 24. Exercícios  6)Qual a menor e a maior?  7)Qual a média das vendas dos dias 15 e 17?  8)Em quantos dias as vendas superaram 3.000?  9)Que vendedores fecharam mais de 2 vendas?