Você está na página 1de 7

UNIDADE CURRICULAR: PROFESSOR(ES) AULA N 05 CONTEDO

BANCO DE DADOS

(1 SEMESTRE) LUCIANA BUHRER / EDSON SEMANA 02/MARO AT 06/MARO GROUP BY E HAVING

GROUP BY E HAVING
Tabela PACIENTES:
NUMERO CPF NOME IDADE

1 2 3 4 5 6

12345678900 11122233355 00011223344 99988877755 01234567890 77766644455

Ygor Isabela Pedro Carla Larissa Maria

40 18 25 52 12 40

Tabela MEDICOS:
NUMERO CPF NOME CIDADE IDADE ESPECIALIDADE

1 2 3 4 6

12345678900 Ana 01234567890 Bia 11122233300 Darci 99988877711 Eloisa 11100000222 Ygor

So Paulo Santos Campinas Campinas So Paulo

31 25 40 36 39

Cardiologista Cardiologista Ortopedista Ortopedista Dermatologista

Tabela Empregados:
NUM NOME DEPTO IDADE SALARIO SEXO

1 2 3 4

Renata Rafaela Viviane Carlos

TI Compras Vendas Vendas

26 30 31 28

1500.00 2600.00 3000.00 4500.00

F F F M

Tabela Clientes:
nro NOME Idade Sexo situacao

1 2 3 4 5 6 7 8

Lucia Ana Bianca Fernada Eduardo Juliano Pedro Renato

33 15 21 45 62 50 25 26

F F F F M M M M

A A A A A I A A

UNIDADE CURRICULAR: PROFESSOR(ES) AULA N 05 CONTEDO

BANCO DE DADOS

(1 SEMESTRE) LUCIANA BUHRER / EDSON SEMANA 02/MARO AT 06/MARO GROUP BY E HAVING

Group By Agrupa as linhas de consulta com base nos valores de uma ou mais colunas. O parmetro pode ser o nome do campo ou seu nmero no resultado do comando Select. A clusula Group By muito til quando a utilizamos para trabalhar junto s funes do comando Select, como encontrar a soma de um campo numrico, dependendo de outro campo (sum), ou simplesmente contar o nmero de registro agrupados(count). Exemplos: Quantos alunos existem em cada curso? SELECT CURSO, COUNT(*) FROM ALUNOS GROUP BY CURSO

Quantos alunos estudam por turno e curso? SELECT TURNO, CURSO, COUNT(*) FROM ALUNOS GROUP BY 1, CURSO

Clusula Having Especifica uma condio de filtragem que os grupos devem satisfazer para que sejam includos nos resultados da consulta. HAVING deve ser utilizada com GROUP BY. Ela pode incluir quantas condies de filtragem voc desejar, conectadas com o operador AND ou OR. Voc tambm pode utilizar NOT para inverter o valor de uma expresso lgica. A maior importncia da clusula Having ser utilizada como o WHERE, porm para o resultado do GROUP BY. No where, no h como utilizar as funes do SELECT dentro do where (sum, count, min, max e avg) somente o HAVING aceita estas funes na filtragem. Exemplos: Quantos alunos existem em cada curso? Exiba apenas os que possuem 44 alunos. SELECT CURSO, COUNT(*) FROM ALUNOS GROUP BY CURSO HAVING COUNT(*) = 44

Quantos alunos estudam por turno e curso, onde o menor dbito igual a R$10,00?
SELECT TURNO, CURSO, COUNT(*) FROM ALUNOS GROUP BY 1, CURSO HAVING MIN(DEBITO) = 10

UNIDADE CURRICULAR: PROFESSOR(ES) AULA N 05 CONTEDO

BANCO DE DADOS

(1 SEMESTRE) LUCIANA BUHRER / EDSON SEMANA 02/MARO AT 06/MARO GROUP BY E HAVING

Exerccios para sala de aula Parte 1 Exerccio 1 Crie query e execute no computador: a) Exibir a mdia de idade dos empregados por sexo, onde a mdia de idade seja inferior a 40 anos.

b) Exibir a mdia de idade dos empregados por departamento e por sexo, onde a mdia de idade seja inferior a 40 anos.

c) Exibir pessoas trabalham em cada departamento utilize a tabela empregados

d) Exibir quantos homens e mulheres trabalham na empresa utilize a tabela empregados

e) Exibir quantos homens e mulheres trabalham em cada departamento utilize a tabela empregados

f) Exibir a quantidade de clientes ativos e inativos utilize a tabela clientes

g) Exibir a quantidade de clientes ativos e inativos maiores de 20 anos - utilize a tabela clientes

UNIDADE CURRICULAR: PROFESSOR(ES) AULA N 05 CONTEDO

BANCO DE DADOS

(1 SEMESTRE) LUCIANA BUHRER / EDSON SEMANA 02/MARO AT 06/MARO GROUP BY E HAVING

h) Exibir a especialidade mdica e a quantidade de profissionais da tabela mdicos.

i) Exibir a especialidade mdica e a quantidade de profissionais, mas possuam 2 ou mais mdicos na rea.

apenas as especialidades que

j) Exibir a quantidade homens e mulheres de clientes ATIVOS - utilize a tabela clientes

Exerccio 2 Crie query: a) Exibir a quantidade de cidades existente em cada pas, para os pases com mais de 5 cidades.

Exerccio 3 Execute a query no computador e informe o resultado obtido: a) SELECT ESPECIALIDADE,COUNT(*) AS ' TOTAL' FROM MEDICOS GROUP BY ESPECIALIDADE ESPECIALIDADE TOTAL

b) SELECT DEPTO,COUNT(*) AS ' TOTAL' FROM EMPREGADOS GROUP BY DEPTO HAVING COUNT(*) = 1 DEPTO TOTAL

UNIDADE CURRICULAR: PROFESSOR(ES) AULA N 05 CONTEDO

BANCO DE DADOS

(1 SEMESTRE) LUCIANA BUHRER / EDSON SEMANA 02/MARO AT 06/MARO GROUP BY E HAVING

Exerccios para sala de aula Parte 2 Tabela Pagto


EMP_COD NOME FONE SALARIO CHEFE DEPTO

2 3 4 1 8 9 10

Silva Cabral Lobato O-Bilac Maria Antunes Petter

2677 1088 4590 2688 2690 2698 2645

30000 22000 28000 20000 25000 26000 22000

Silvio Lago

Vendas

Renato Bressan Segurana Renato Bressan Vendas Luciana Buhrer Leandro Cesar Tatiana Vieco Tatiana Vieco Segurana Ti Ti Ti

Exerccio 1 Explique cada query: a) Select avg(salario) AS MEDIA from pagto MEDIA 24714

b) Select chefe, avg(salario) AS media from pagto group by chefe chefe media Renato Bressan Luciana Buhrer Leandro Cesar Tatiana Vieco Silvio Lago 25000 20000 25000 24000 30000

c) Select depto, avg(salario) AS media from pagto group by depto depto media Ti Vendas Segurana 24333 29000 21000

d) Select depto, avg(salario) AS media from pagto where salario > 20000 group by depto depto media Ti Vendas 24333 29000

UNIDADE CURRICULAR: PROFESSOR(ES) AULA N 05 CONTEDO

BANCO DE DADOS

(1 SEMESTRE) LUCIANA BUHRER / EDSON SEMANA 02/MARO AT 06/MARO GROUP BY E HAVING

Segurana

22000

e) Select depto, avg(salario) AS media from pagto group by depto having avg(salario) > 22000 depto media Ti Vendas 24333 29000

f) Select depto, avg(salario) AS media from pagto where salario > 20000 group by depto having avg(salario) > 22000 depto media Ti Vendas 24333 29000

Exerccio 2 Crie query: a) Obter, a partir da tabela Pagto, o salrio mnimo, mximo e mdio dos funcionrios de cada departamento. O resultado deve possuir 4 colunas nomeadas: departamento, mnimo, mximo e mdia.

b) Obter os cdigos de departamento cuja mdia de salrio seja maior que 2.000 reais.

c) Exibir o total de salrios de cada departamento da empresa que tenha este total > R$ 5.000,00.

d) Exibir o nome do chefe e a quantidade de subordinados.

e) Exibir o nome do chefe e a quantidade de subordinados. Trazer apenas os chefes que possuem 2 ou mais subordinados.

UNIDADE CURRICULAR: PROFESSOR(ES) AULA N 05 CONTEDO

BANCO DE DADOS

(1 SEMESTRE) LUCIANA BUHRER / EDSON SEMANA 02/MARO AT 06/MARO GROUP BY E HAVING

Você também pode gostar