SlideShare uma empresa Scribd logo
1 de 24
Rodrigo Kiyoshi Saito / rodrigok@anchieta.br
BANCO DE DADOS I
Tópicos abordados
• Agrupando e resumindo dados
AGRUPANDO E
RESUMINDO DADOS
• Usado expressões matemáticas nas cláusulas
SELECT e WHERE;
• A capacidade de executar agrupamentos e dados
resumidos é muito importante para o
desenvolvedor em entrega de relatórios
significativos aos usuários.
• Esta habilidade é feita através de funções
agregadas, geralmente com dados agrupados.
AGRUPANDO E
RESUMINDO DADOS
• Funções de agregação são funções que
operam em conjunto, ou linhas, ou dados, em
oposição ao conjunto de funções que operam
sobre valores individuais.
• Funções agregadas podem ser aplicadas de
várias maneiras, incluindo o uso de
agregações personalizadas;
Funções de agregação
nativas para o SQL Server
• Podem ser usadas em:
• Na lista de seleção da declaração do SELECT;
• Na cláusula HAVING
Funções de agregação
nativas para o SQL Server
SELECT MAX(TaxRate)
FROM Sales.SalesTaxRate
GROUP BY TaxType
Funções de agregação
nativas para o SQL Server
• Algumas funções comuns são AVG, MIN, MAX,
SUM, COUNT, GROUPING e VAR;
• Funções de agregação realizam cálculos no
conjunto, ou grupo de valores e retornam um
único valor;
• Note que varias funções de agregação trabalham
com diferentes tipos de dados – para a instância
AVG e SUM somente trabalha com tipos
numéricos;
Funções de agregação
nativas para o SQL Server
• Funções de agregação normalmente obtêm seus
conjuntos de valores para trabalhar em via
cláusula GROUP BY. Quando não houver GROUP
BY, as funções que obtém seus grupos em toda a
tabela são filtradas pela cláusula WHERE;
• Funções de agregação podem aparecer na
cláusula declaração SELECT, COMPUTE/COMPUTE
BY e HAVING;
Funções de agregação
nativas para o SQL Server
SELECT AVG(TaxRate)
FROM Sales.SalesTaxRate;
SELECT MAX(VacationHours)
FROM HumanResources.Employee;
SELECT MIN(SickLeaveHours)
FROM HumanResources.Employee;
SELECT MAX(VacationHours) as 'MAXVacationHours',
MIN(SickLeaveHours) as 'MINSickLeaveHours'
FROM HumanResources.Employee;
SELECT SUM(VacationHours) AS 'TOTALVacationHours'
FROM HumanResources.Employee;
Funções de agregação
nativas para o SQL Server
--Contado todas as linhas da tabela
SELECT COUNT(*)
FROM Production.Product
-- Contando todos os campos que contenham valor em
Weight(Peso)
SELECT COUNT(Weight)
FROM Production.Product
Funções de agregação
nativas para o SQL Server
SELECT COUNT(*) FROM PESSOA
SELECT COUNT(*) AS TOT1, COUNT(TELEFONE) AS TOT2 FROM PESSOA
SELECT COUNT(NOME) AS TOT1, COUNT(TELEFONE) AS TOT2 FRM
PESSOA
SELECT COUNT(*) AS TOTOL FROM PESSOA WHERE TELEFONE IS NULL
SELECT COUNT(DISTINCT(ID)) AS TOTOAL FROM COMISSAO
SELECT MAX(SALARIO) AS BIG_ONE FROM PESSOA
SELECT MIM(IDADE) AS MIN_INDADE FROM PESSOA
Funções de agregação
nativas para o SQL Server
SELECT MIN(VALOR) AS MENOR, MAX(VALOR) AS MAIOR
FROM COMISSAO
WHERE VALOR > 1000 AND VALOR < 5000
SELECT SUM(VALOR) AS COMISSOES_LISBOA
FROM COMISSAO C, PESSOA P, POSTAL
WHERE C.ID = P.ID AND
CODIGO = COD_POSTAL AND
LOCALIDADE = 'LISBOA'
SELECT SUM(VALOR) AS COMISSOES, SUM(VALOR * 0.19) AS VALOR
FROM COMISSAO
Funções de agregação
nativas para o SQL Server
SELECT SUM(VALOR) AS COMISSOES, SUM(VALOR * 0.19) AS VALOR
FROM COMISSAO
SELECT AVG(IDADE) AS MEDIA_IDADES
FROM PESSOAS
SELECT AVG(SALARIO)
FROM PESSOA
WHERE IDADE > 30
Usando funções de
agregação com valores
NULL
• A maioria das funções de agregação
ignoram valores NULL;
• Valores NULL podem produzir um
inesperado ou um resultado incorreto;
• User a função ISNULL para corrigir esse
problema;
Usando funções de
agregação com valores
NULL
-- Consulta sem utilizacao do ISNULL
-- Reusultado: 74.06
SELECT AVG(Weight) AS 'AvgWeight'
FROM Production.Product
-- Consulta com utilizacao do ISNULL
-- Reusultado: 30.12
SELECT AVG(ISNULL(Weight,0)) AS 'AvgWeight'
FROM Production.Product
-- Valores nulos sendo substituidos por zero, sendo
incluidos na contagem
SELECT COUNT(ISNULL(Weight,0))
FROM Production.Product
Usando funções de
agregação com valores
NULL
• A função COUNT(*) é uma exceção de função e
retorna o número total de registros na tabela;
Usando a cláusula
GROUP BY
• Especifica os grupos em que as linhas de resultado
devem ser colocadas;
• Calcula valores totais para funções de agregação;
SELECT SalesOrderID, SUM(LineTotal) as SubTotal
FROM Sales.SalesOrderDetail
GROUP BY SalesOrderID
ORDER BY SalesOrderID
Usando funções de
agregação com valores
NULL
• Ao executar agrupamento em uma consulta, os
registros das colunas são agrupados por colunas
listadas na cláusula GROUP BY. É esse grupo que
criam os conjuntos de funções de agregação.
Portanto, se você deseja somar o campo
LineTotal para cada registro da tabela
SalesOrderDetail, você deveria agrupar em uma
coluna que identifica unicamente cada ordem de
venda, nesse caso a coluna SalesOrderID;
Usando funções de
agregação com valores
NULL
• Ao usar a cláusula GROUP BY, todas as colunas na lista
SELECT que não fazem parte de uma expressão de
agregação será usado para agrupar os resultados por
meio da cláusula GROUP BY. Se você não deseja agrupar
uma coluna, não a coloque no SELECT;
• Valores NULL são incluídas no agrupamento de uma
coluna - todos os valores NULL são considerados iguais e,
assim, colocado em seu próprio grupo;
Usando funções de
agregação com valores
NULL
SELECT ID, SUM(VALOR) AS TOTAL
FROM COMISSAO
GROUP BY ID
SELECT NOME, SUM(VALOR) AS TOTAL
FROM PESSOA P, COMISSAO C
WHERE P.ID = C.ID
GROUP BY NOME
SELECT NOME, SUM(VALOR) + SALARIO AS TOTAL
FROM PESSOA P, COMISSAO C
WHERE P.ID = C.ID
GROUP BY NOME, SALARIO
Usando funções de
agregação com valores
NULL
SELECT ID, MAX(VALOR) AS MAIOR
FROM COMISSAO
GROUP BY ID
SELECT ID, COUNT(*) FROM N_COMISSOES
FROM COMISSAO
GROUP BY ID
SELECT MENSAGEM, SUM(VALOR) AS TOTAL
FROM COMISSAO C, MENSAGEM M
WHERE M.ID = C.ID_MSG
GROUP BY MENSAGEM
ORDER BY 2 DESC
Filtrando dados agrupados
usando a cláusula HAVING
• Especifica uma condição de pesquisa para um
grupo;
• Pode ser usada somente com a cláusula
SELECT;
SELECT SalesOrderID, SUM(LineTotal) AS SUBTOTAL
FROM Sales.SalesOrderDetail
GROUP BY SalesOrderID
HAVING SUM(LineTotal) > 100000.00
ORDER BY SalesOrderID
Filtrando dados agrupados
usando a cláusula HAVING
• A cláusula HAVING é opcional que pode ser usado para
diminuir o conjunto de resultados configurados por
critérios nos valores de agregação, efetivamente
repassando a cláusula WHERE;
•
• A cláusula HAVING é usada para filtrar linhas após o
agrupamento que foi aplicado, antes que os resultados
sejam retornados para o cliente;
•
• Você pode somente incluir expressões agregadas e
colunas que são listadas na cláusula GROUP BY;
Filtrando dados agrupados
usando a cláusula HAVING
• É uma prática utilizar o resultado agregado utilizando a cláusula
HAVING, e não na cláusula WHERE;
SELECT ID, SUM(VALOR) AS TOTAL
FROM COMISSAO
GROUP BY ID
HAVING SUM(VALOR) > 1000
SELECT NOME, MAX(ID_MSG)
FROM PESSOA P, COMISSAO C
WHERE P.ID = C.ID
GROUP BY NOME
HAVING MAX(ID_MSG) > 35

Mais conteúdo relacionado

Semelhante a BD I - Aula 13 B - Agrupando Dados - Parte 04

Cassandra cql
Cassandra cqlCassandra cql
Cassandra cqldist_bp
 
Principais instruções em sql
Principais instruções em sqlPrincipais instruções em sql
Principais instruções em sqlCharleston Anjos
 
Curso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos ComandosCurso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos ComandosMarcos Thomaz
 
um breve treinamento sobre SQL e suas funcionalidades
um breve treinamento sobre SQL e suas funcionalidadesum breve treinamento sobre SQL e suas funcionalidades
um breve treinamento sobre SQL e suas funcionalidadesWilliam Costa
 
Aula7 sql basico_6por_pag
Aula7 sql basico_6por_pagAula7 sql basico_6por_pag
Aula7 sql basico_6por_paganacri
 
BD I - Aula 14 A - Limitando Conj Dados e Sub Selects
BD I - Aula 14 A - Limitando Conj Dados e Sub SelectsBD I - Aula 14 A - Limitando Conj Dados e Sub Selects
BD I - Aula 14 A - Limitando Conj Dados e Sub SelectsRodrigo Kiyoshi Saito
 
Stored Procedures and Triggers
Stored Procedures and TriggersStored Procedures and Triggers
Stored Procedures and Triggersflaviognm
 
Treinamento de SQL Básico
Treinamento de SQL BásicoTreinamento de SQL Básico
Treinamento de SQL BásicoIgor Alves
 
Refactoring Databases - Estrategias
Refactoring Databases - EstrategiasRefactoring Databases - Estrategias
Refactoring Databases - EstrategiasIsmael
 
Exemplo caso de uso(Mulesoft)
Exemplo caso de uso(Mulesoft)Exemplo caso de uso(Mulesoft)
Exemplo caso de uso(Mulesoft)Guilherme Baccas
 
Fundamentos de SQL - Parte 4 de 8
Fundamentos de SQL - Parte 4 de 8Fundamentos de SQL - Parte 4 de 8
Fundamentos de SQL - Parte 4 de 8Emiliano Barbosa
 

Semelhante a BD I - Aula 13 B - Agrupando Dados - Parte 04 (20)

MYSQL - TLBDII
MYSQL - TLBDIIMYSQL - TLBDII
MYSQL - TLBDII
 
Cassandra cql
Cassandra cqlCassandra cql
Cassandra cql
 
Principais instruções em sql
Principais instruções em sqlPrincipais instruções em sql
Principais instruções em sql
 
Stored procedure
Stored procedureStored procedure
Stored procedure
 
Aula 300309
Aula 300309Aula 300309
Aula 300309
 
Curso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos ComandosCurso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos Comandos
 
Um pouco sobre sql
Um pouco sobre sqlUm pouco sobre sql
Um pouco sobre sql
 
um breve treinamento sobre SQL e suas funcionalidades
um breve treinamento sobre SQL e suas funcionalidadesum breve treinamento sobre SQL e suas funcionalidades
um breve treinamento sobre SQL e suas funcionalidades
 
Aula7 sql basico_6por_pag
Aula7 sql basico_6por_pagAula7 sql basico_6por_pag
Aula7 sql basico_6por_pag
 
BD I - Aula 14 A - Limitando Conj Dados e Sub Selects
BD I - Aula 14 A - Limitando Conj Dados e Sub SelectsBD I - Aula 14 A - Limitando Conj Dados e Sub Selects
BD I - Aula 14 A - Limitando Conj Dados e Sub Selects
 
Stored procedure
Stored procedureStored procedure
Stored procedure
 
Stored Procedures and Triggers
Stored Procedures and TriggersStored Procedures and Triggers
Stored Procedures and Triggers
 
Treinamento de SQL Básico
Treinamento de SQL BásicoTreinamento de SQL Básico
Treinamento de SQL Básico
 
Refactoring Databases - Estrategias
Refactoring Databases - EstrategiasRefactoring Databases - Estrategias
Refactoring Databases - Estrategias
 
Exemplo caso de uso(Mulesoft)
Exemplo caso de uso(Mulesoft)Exemplo caso de uso(Mulesoft)
Exemplo caso de uso(Mulesoft)
 
Angular js
Angular jsAngular js
Angular js
 
Banco dedados aula003
Banco dedados aula003Banco dedados aula003
Banco dedados aula003
 
Agrupamento
AgrupamentoAgrupamento
Agrupamento
 
Agrupamento
AgrupamentoAgrupamento
Agrupamento
 
Fundamentos de SQL - Parte 4 de 8
Fundamentos de SQL - Parte 4 de 8Fundamentos de SQL - Parte 4 de 8
Fundamentos de SQL - Parte 4 de 8
 

Mais de Rodrigo Kiyoshi Saito

Algoritmos - Aula 16 B - Arquivos - Exercicios
Algoritmos - Aula 16 B - Arquivos - ExerciciosAlgoritmos - Aula 16 B - Arquivos - Exercicios
Algoritmos - Aula 16 B - Arquivos - ExerciciosRodrigo Kiyoshi Saito
 
Algoritmos - Aula 16 - Registros - Exercicio Enunciado
Algoritmos - Aula 16 - Registros - Exercicio EnunciadoAlgoritmos - Aula 16 - Registros - Exercicio Enunciado
Algoritmos - Aula 16 - Registros - Exercicio EnunciadoRodrigo Kiyoshi Saito
 
BD I - Aula 15 C - Manutencao de tabelas
BD I - Aula 15 C - Manutencao de tabelasBD I - Aula 15 C - Manutencao de tabelas
BD I - Aula 15 C - Manutencao de tabelasRodrigo Kiyoshi Saito
 
BD I - Aula 15 B - Criacao de tabelas
BD I - Aula 15 B - Criacao de tabelasBD I - Aula 15 B - Criacao de tabelas
BD I - Aula 15 B - Criacao de tabelasRodrigo Kiyoshi Saito
 
BD I - Aula 14 B - Exercicios - Enunciado
BD I - Aula 14 B - Exercicios - EnunciadoBD I - Aula 14 B - Exercicios - Enunciado
BD I - Aula 14 B - Exercicios - EnunciadoRodrigo Kiyoshi Saito
 
Algoritmos - Aula 15 - Modularizacao e Escopo de Variaveis - Exercicios Enunc...
Algoritmos - Aula 15 - Modularizacao e Escopo de Variaveis - Exercicios Enunc...Algoritmos - Aula 15 - Modularizacao e Escopo de Variaveis - Exercicios Enunc...
Algoritmos - Aula 15 - Modularizacao e Escopo de Variaveis - Exercicios Enunc...Rodrigo Kiyoshi Saito
 
Algoritmos - Aula 15 - Modularizacao e Escopo de Variaveis
Algoritmos - Aula 15 - Modularizacao e Escopo de VariaveisAlgoritmos - Aula 15 - Modularizacao e Escopo de Variaveis
Algoritmos - Aula 15 - Modularizacao e Escopo de VariaveisRodrigo Kiyoshi Saito
 
BD I - Aula 13 B - Agrupando Dados - Parte 04 - Exercicios Enunciado
BD I - Aula 13 B - Agrupando Dados  - Parte 04 - Exercicios EnunciadoBD I - Aula 13 B - Agrupando Dados  - Parte 04 - Exercicios Enunciado
BD I - Aula 13 B - Agrupando Dados - Parte 04 - Exercicios EnunciadoRodrigo Kiyoshi Saito
 
BD I - Aula 13 B - Agrupando dados - Parte 04 - Exercicios Enunciado
BD I - Aula 13 B - Agrupando dados  - Parte 04 - Exercicios EnunciadoBD I - Aula 13 B - Agrupando dados  - Parte 04 - Exercicios Enunciado
BD I - Aula 13 B - Agrupando dados - Parte 04 - Exercicios EnunciadoRodrigo Kiyoshi Saito
 
BD I - Aula 13 A - Funcoes de string datas numeros e conversao - parte 03
BD I - Aula 13 A - Funcoes de string datas numeros e conversao - parte 03BD I - Aula 13 A - Funcoes de string datas numeros e conversao - parte 03
BD I - Aula 13 A - Funcoes de string datas numeros e conversao - parte 03Rodrigo Kiyoshi Saito
 
Algoritmos - Aula 13 C - Matrizes em C
Algoritmos - Aula 13 C - Matrizes em CAlgoritmos - Aula 13 C - Matrizes em C
Algoritmos - Aula 13 C - Matrizes em CRodrigo Kiyoshi Saito
 
Algoritmos - Aula 13 B - Vetores em C
Algoritmos - Aula 13 B - Vetores em CAlgoritmos - Aula 13 B - Vetores em C
Algoritmos - Aula 13 B - Vetores em CRodrigo Kiyoshi Saito
 
Algoritmos - Aula 12 B - Traducao Ling C - Condicoes
Algoritmos - Aula 12 B - Traducao Ling C - CondicoesAlgoritmos - Aula 12 B - Traducao Ling C - Condicoes
Algoritmos - Aula 12 B - Traducao Ling C - CondicoesRodrigo Kiyoshi Saito
 
Algoritmos - Aula 12 A - Traducao ling C - Ent Proc Saida
Algoritmos - Aula 12 A - Traducao ling C - Ent Proc SaidaAlgoritmos - Aula 12 A - Traducao ling C - Ent Proc Saida
Algoritmos - Aula 12 A - Traducao ling C - Ent Proc SaidaRodrigo Kiyoshi Saito
 
Algoritmos - Aula 10 A - Traducao Do Port Est Para Ling C
Algoritmos - Aula 10 A - Traducao Do Port Est Para Ling CAlgoritmos - Aula 10 A - Traducao Do Port Est Para Ling C
Algoritmos - Aula 10 A - Traducao Do Port Est Para Ling CRodrigo Kiyoshi Saito
 

Mais de Rodrigo Kiyoshi Saito (20)

Algoritmos - Aula 16 B - Arquivos
Algoritmos - Aula 16 B - ArquivosAlgoritmos - Aula 16 B - Arquivos
Algoritmos - Aula 16 B - Arquivos
 
Algoritmos - Aula 16 B - Arquivos - Exercicios
Algoritmos - Aula 16 B - Arquivos - ExerciciosAlgoritmos - Aula 16 B - Arquivos - Exercicios
Algoritmos - Aula 16 B - Arquivos - Exercicios
 
Algoritmos - Aula 16 - Registros - Exercicio Enunciado
Algoritmos - Aula 16 - Registros - Exercicio EnunciadoAlgoritmos - Aula 16 - Registros - Exercicio Enunciado
Algoritmos - Aula 16 - Registros - Exercicio Enunciado
 
Algoritmos - Aula 16 - Registros
Algoritmos - Aula 16 - RegistrosAlgoritmos - Aula 16 - Registros
Algoritmos - Aula 16 - Registros
 
BD I - Aula 15 C - Manutencao de tabelas
BD I - Aula 15 C - Manutencao de tabelasBD I - Aula 15 C - Manutencao de tabelas
BD I - Aula 15 C - Manutencao de tabelas
 
BD I - Aula 15 B - Criacao de tabelas
BD I - Aula 15 B - Criacao de tabelasBD I - Aula 15 B - Criacao de tabelas
BD I - Aula 15 B - Criacao de tabelas
 
BD I - Aula 15 A - Comandos DML
BD I - Aula 15 A - Comandos DMLBD I - Aula 15 A - Comandos DML
BD I - Aula 15 A - Comandos DML
 
BD I - Aula 14 B - Exercicios - Enunciado
BD I - Aula 14 B - Exercicios - EnunciadoBD I - Aula 14 B - Exercicios - Enunciado
BD I - Aula 14 B - Exercicios - Enunciado
 
Algoritmos - Aula 15 - Modularizacao e Escopo de Variaveis - Exercicios Enunc...
Algoritmos - Aula 15 - Modularizacao e Escopo de Variaveis - Exercicios Enunc...Algoritmos - Aula 15 - Modularizacao e Escopo de Variaveis - Exercicios Enunc...
Algoritmos - Aula 15 - Modularizacao e Escopo de Variaveis - Exercicios Enunc...
 
Algoritmos - Aula 15 - Modularizacao e Escopo de Variaveis
Algoritmos - Aula 15 - Modularizacao e Escopo de VariaveisAlgoritmos - Aula 15 - Modularizacao e Escopo de Variaveis
Algoritmos - Aula 15 - Modularizacao e Escopo de Variaveis
 
BD I - Aula 13 B - Agrupando Dados - Parte 04 - Exercicios Enunciado
BD I - Aula 13 B - Agrupando Dados  - Parte 04 - Exercicios EnunciadoBD I - Aula 13 B - Agrupando Dados  - Parte 04 - Exercicios Enunciado
BD I - Aula 13 B - Agrupando Dados - Parte 04 - Exercicios Enunciado
 
BD I - Aula 13 B - Agrupando dados - Parte 04 - Exercicios Enunciado
BD I - Aula 13 B - Agrupando dados  - Parte 04 - Exercicios EnunciadoBD I - Aula 13 B - Agrupando dados  - Parte 04 - Exercicios Enunciado
BD I - Aula 13 B - Agrupando dados - Parte 04 - Exercicios Enunciado
 
BD I - Aula 13 A - Funcoes de string datas numeros e conversao - parte 03
BD I - Aula 13 A - Funcoes de string datas numeros e conversao - parte 03BD I - Aula 13 A - Funcoes de string datas numeros e conversao - parte 03
BD I - Aula 13 A - Funcoes de string datas numeros e conversao - parte 03
 
Algoritmos - Aula 13 C - Matrizes em C
Algoritmos - Aula 13 C - Matrizes em CAlgoritmos - Aula 13 C - Matrizes em C
Algoritmos - Aula 13 C - Matrizes em C
 
Algoritmos - Aula 13 B - Vetores em C
Algoritmos - Aula 13 B - Vetores em CAlgoritmos - Aula 13 B - Vetores em C
Algoritmos - Aula 13 B - Vetores em C
 
Algoritmos - Aula 13 A - Lacos em C
Algoritmos - Aula 13 A - Lacos em CAlgoritmos - Aula 13 A - Lacos em C
Algoritmos - Aula 13 A - Lacos em C
 
Algoritmos - Aula 12 B - Traducao Ling C - Condicoes
Algoritmos - Aula 12 B - Traducao Ling C - CondicoesAlgoritmos - Aula 12 B - Traducao Ling C - Condicoes
Algoritmos - Aula 12 B - Traducao Ling C - Condicoes
 
Algoritmos - Aula 12 A - Traducao ling C - Ent Proc Saida
Algoritmos - Aula 12 A - Traducao ling C - Ent Proc SaidaAlgoritmos - Aula 12 A - Traducao ling C - Ent Proc Saida
Algoritmos - Aula 12 A - Traducao ling C - Ent Proc Saida
 
BD I - Aula 10 A - Introducao a SQL
BD I - Aula 10 A - Introducao a SQLBD I - Aula 10 A - Introducao a SQL
BD I - Aula 10 A - Introducao a SQL
 
Algoritmos - Aula 10 A - Traducao Do Port Est Para Ling C
Algoritmos - Aula 10 A - Traducao Do Port Est Para Ling CAlgoritmos - Aula 10 A - Traducao Do Port Est Para Ling C
Algoritmos - Aula 10 A - Traducao Do Port Est Para Ling C
 

Último

DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...IsabelPereira2010
 
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...licinioBorges
 
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇJaineCarolaineLima
 
Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividadeMary Alvarenga
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdfAna Lemos
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números Mary Alvarenga
 
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptxJOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptxTainTorres4
 
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdfPROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdfMarianaMoraesMathias
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfmaurocesarpaesalmeid
 
Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxferreirapriscilla84
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfprofesfrancleite
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteVanessaCavalcante37
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfHELENO FAVACHO
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕESCOMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕESEduardaReis50
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...Rosalina Simão Nunes
 
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxSlides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxLuizHenriquedeAlmeid6
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...azulassessoria9
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 

Último (20)

DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
 
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
 
Bullying, sai pra lá
Bullying,  sai pra láBullying,  sai pra lá
Bullying, sai pra lá
 
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
 
Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividade
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdf
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números
 
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptxJOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
 
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdfPROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
 
Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptx
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕESCOMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
 
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxSlides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 

BD I - Aula 13 B - Agrupando Dados - Parte 04

  • 1. Rodrigo Kiyoshi Saito / rodrigok@anchieta.br BANCO DE DADOS I
  • 3. AGRUPANDO E RESUMINDO DADOS • Usado expressões matemáticas nas cláusulas SELECT e WHERE; • A capacidade de executar agrupamentos e dados resumidos é muito importante para o desenvolvedor em entrega de relatórios significativos aos usuários. • Esta habilidade é feita através de funções agregadas, geralmente com dados agrupados.
  • 4. AGRUPANDO E RESUMINDO DADOS • Funções de agregação são funções que operam em conjunto, ou linhas, ou dados, em oposição ao conjunto de funções que operam sobre valores individuais. • Funções agregadas podem ser aplicadas de várias maneiras, incluindo o uso de agregações personalizadas;
  • 5. Funções de agregação nativas para o SQL Server • Podem ser usadas em: • Na lista de seleção da declaração do SELECT; • Na cláusula HAVING
  • 6. Funções de agregação nativas para o SQL Server SELECT MAX(TaxRate) FROM Sales.SalesTaxRate GROUP BY TaxType
  • 7. Funções de agregação nativas para o SQL Server • Algumas funções comuns são AVG, MIN, MAX, SUM, COUNT, GROUPING e VAR; • Funções de agregação realizam cálculos no conjunto, ou grupo de valores e retornam um único valor; • Note que varias funções de agregação trabalham com diferentes tipos de dados – para a instância AVG e SUM somente trabalha com tipos numéricos;
  • 8. Funções de agregação nativas para o SQL Server • Funções de agregação normalmente obtêm seus conjuntos de valores para trabalhar em via cláusula GROUP BY. Quando não houver GROUP BY, as funções que obtém seus grupos em toda a tabela são filtradas pela cláusula WHERE; • Funções de agregação podem aparecer na cláusula declaração SELECT, COMPUTE/COMPUTE BY e HAVING;
  • 9. Funções de agregação nativas para o SQL Server SELECT AVG(TaxRate) FROM Sales.SalesTaxRate; SELECT MAX(VacationHours) FROM HumanResources.Employee; SELECT MIN(SickLeaveHours) FROM HumanResources.Employee; SELECT MAX(VacationHours) as 'MAXVacationHours', MIN(SickLeaveHours) as 'MINSickLeaveHours' FROM HumanResources.Employee; SELECT SUM(VacationHours) AS 'TOTALVacationHours' FROM HumanResources.Employee;
  • 10. Funções de agregação nativas para o SQL Server --Contado todas as linhas da tabela SELECT COUNT(*) FROM Production.Product -- Contando todos os campos que contenham valor em Weight(Peso) SELECT COUNT(Weight) FROM Production.Product
  • 11. Funções de agregação nativas para o SQL Server SELECT COUNT(*) FROM PESSOA SELECT COUNT(*) AS TOT1, COUNT(TELEFONE) AS TOT2 FROM PESSOA SELECT COUNT(NOME) AS TOT1, COUNT(TELEFONE) AS TOT2 FRM PESSOA SELECT COUNT(*) AS TOTOL FROM PESSOA WHERE TELEFONE IS NULL SELECT COUNT(DISTINCT(ID)) AS TOTOAL FROM COMISSAO SELECT MAX(SALARIO) AS BIG_ONE FROM PESSOA SELECT MIM(IDADE) AS MIN_INDADE FROM PESSOA
  • 12. Funções de agregação nativas para o SQL Server SELECT MIN(VALOR) AS MENOR, MAX(VALOR) AS MAIOR FROM COMISSAO WHERE VALOR > 1000 AND VALOR < 5000 SELECT SUM(VALOR) AS COMISSOES_LISBOA FROM COMISSAO C, PESSOA P, POSTAL WHERE C.ID = P.ID AND CODIGO = COD_POSTAL AND LOCALIDADE = 'LISBOA' SELECT SUM(VALOR) AS COMISSOES, SUM(VALOR * 0.19) AS VALOR FROM COMISSAO
  • 13. Funções de agregação nativas para o SQL Server SELECT SUM(VALOR) AS COMISSOES, SUM(VALOR * 0.19) AS VALOR FROM COMISSAO SELECT AVG(IDADE) AS MEDIA_IDADES FROM PESSOAS SELECT AVG(SALARIO) FROM PESSOA WHERE IDADE > 30
  • 14. Usando funções de agregação com valores NULL • A maioria das funções de agregação ignoram valores NULL; • Valores NULL podem produzir um inesperado ou um resultado incorreto; • User a função ISNULL para corrigir esse problema;
  • 15. Usando funções de agregação com valores NULL -- Consulta sem utilizacao do ISNULL -- Reusultado: 74.06 SELECT AVG(Weight) AS 'AvgWeight' FROM Production.Product -- Consulta com utilizacao do ISNULL -- Reusultado: 30.12 SELECT AVG(ISNULL(Weight,0)) AS 'AvgWeight' FROM Production.Product -- Valores nulos sendo substituidos por zero, sendo incluidos na contagem SELECT COUNT(ISNULL(Weight,0)) FROM Production.Product
  • 16. Usando funções de agregação com valores NULL • A função COUNT(*) é uma exceção de função e retorna o número total de registros na tabela;
  • 17. Usando a cláusula GROUP BY • Especifica os grupos em que as linhas de resultado devem ser colocadas; • Calcula valores totais para funções de agregação; SELECT SalesOrderID, SUM(LineTotal) as SubTotal FROM Sales.SalesOrderDetail GROUP BY SalesOrderID ORDER BY SalesOrderID
  • 18. Usando funções de agregação com valores NULL • Ao executar agrupamento em uma consulta, os registros das colunas são agrupados por colunas listadas na cláusula GROUP BY. É esse grupo que criam os conjuntos de funções de agregação. Portanto, se você deseja somar o campo LineTotal para cada registro da tabela SalesOrderDetail, você deveria agrupar em uma coluna que identifica unicamente cada ordem de venda, nesse caso a coluna SalesOrderID;
  • 19. Usando funções de agregação com valores NULL • Ao usar a cláusula GROUP BY, todas as colunas na lista SELECT que não fazem parte de uma expressão de agregação será usado para agrupar os resultados por meio da cláusula GROUP BY. Se você não deseja agrupar uma coluna, não a coloque no SELECT; • Valores NULL são incluídas no agrupamento de uma coluna - todos os valores NULL são considerados iguais e, assim, colocado em seu próprio grupo;
  • 20. Usando funções de agregação com valores NULL SELECT ID, SUM(VALOR) AS TOTAL FROM COMISSAO GROUP BY ID SELECT NOME, SUM(VALOR) AS TOTAL FROM PESSOA P, COMISSAO C WHERE P.ID = C.ID GROUP BY NOME SELECT NOME, SUM(VALOR) + SALARIO AS TOTAL FROM PESSOA P, COMISSAO C WHERE P.ID = C.ID GROUP BY NOME, SALARIO
  • 21. Usando funções de agregação com valores NULL SELECT ID, MAX(VALOR) AS MAIOR FROM COMISSAO GROUP BY ID SELECT ID, COUNT(*) FROM N_COMISSOES FROM COMISSAO GROUP BY ID SELECT MENSAGEM, SUM(VALOR) AS TOTAL FROM COMISSAO C, MENSAGEM M WHERE M.ID = C.ID_MSG GROUP BY MENSAGEM ORDER BY 2 DESC
  • 22. Filtrando dados agrupados usando a cláusula HAVING • Especifica uma condição de pesquisa para um grupo; • Pode ser usada somente com a cláusula SELECT; SELECT SalesOrderID, SUM(LineTotal) AS SUBTOTAL FROM Sales.SalesOrderDetail GROUP BY SalesOrderID HAVING SUM(LineTotal) > 100000.00 ORDER BY SalesOrderID
  • 23. Filtrando dados agrupados usando a cláusula HAVING • A cláusula HAVING é opcional que pode ser usado para diminuir o conjunto de resultados configurados por critérios nos valores de agregação, efetivamente repassando a cláusula WHERE; • • A cláusula HAVING é usada para filtrar linhas após o agrupamento que foi aplicado, antes que os resultados sejam retornados para o cliente; • • Você pode somente incluir expressões agregadas e colunas que são listadas na cláusula GROUP BY;
  • 24. Filtrando dados agrupados usando a cláusula HAVING • É uma prática utilizar o resultado agregado utilizando a cláusula HAVING, e não na cláusula WHERE; SELECT ID, SUM(VALOR) AS TOTAL FROM COMISSAO GROUP BY ID HAVING SUM(VALOR) > 1000 SELECT NOME, MAX(ID_MSG) FROM PESSOA P, COMISSAO C WHERE P.ID = C.ID GROUP BY NOME HAVING MAX(ID_MSG) > 35