Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


SQL III: Ordenação e Agrupamento de Dados em Bancos de Dados, Notas de estudo de Análise de Sistemas de Engenharia

Neste documento, aprenda a utilizar a cláusula order by para ordenar resultados de consultas em bancos de dados sql, além de saber como utilizar a cláusula group by e having para agrupar e filtrar dados. Encontre exemplos práticos de consultas para ordenar e agrupar dados de uma tabela de empregados.

Tipologia: Notas de estudo

2014

Compartilhado em 06/05/2014

gustavo-guedes-3
gustavo-guedes-3 🇧🇷

3

(1)

12 documentos

1 / 16

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
BANCO DE DADOS
SQL DML III
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Pré-visualização parcial do texto

Baixe SQL III: Ordenação e Agrupamento de Dados em Bancos de Dados e outras Notas de estudo em PDF para Análise de Sistemas de Engenharia, somente na Docsity!

BANCO DE DADOS

SQL – DML III

  • O resultado de uma consulta é um conjunto

de tuplas.

  • Para realizar ordenação dessas tuplas

utilizando a cláusula ORDER BY.

  • Vamos observar o resultado das duas

consultas abaixo:

ORDENAÇÃO

SELECT * FROM empregado;

SELECT * FROM empregado ORDER BY nome;

  • ORDER BY
    • Há possibilidade de ordenar em função de mais de

um parâmetro

  • Liste todos os atributos de empregado por

ordem crescente de nome e uma segunda

ordenação descendente por salário.

ORDENAÇÃO

SELECT * FROM empregado ORDER BY nome, salario desc;

    1. Obtenha nome e os salários dos empregado que trabalham no departamento financeiro. A lista deve ser ordenada por ordem crescente dos sálários dos funcionário.
    1. Obtenha nome e endereço dos empregados que trabalham no projeto A. A lista deve conter ordem descendente alfabética dos nomes dos funcionários.

ORDENAÇÃO

SELECT e.nome, e.salario FROM empregado e, departamento d WHERE e.dep = d.codigo and e.nome=‘Financeiro’ ORDER BY salario asc;

  • Para cada departamento, obter o código do

departamento, o número de empregados e a média

salarial

 as tuplas de empregados são separadas em grupos (departamento) e as funções COUNT e AVG são aplicadas a cada grupo separadamente.

 Exercício de sala: Qual o menor e o maior salário dos funcionários de cada departamento. (7 minutos)

SELECT depto, COUNT(), AVG(salario) FROM Empregado GROUP BY depto*

  • Para cada departamento que tiver mais de 2

funcionário, obter o código do departamento, o

número de empregados e a média salarial

SELECT depto, COUNT(), AVG(salario) FROM Empregado GROUP BY depto HAVING count()>2;**

  • Para cada projeto, obter o código do projeto, seu nome e o número de empregados que trabalham naquele projeto
o agrupamento e as funções são aplicadas após a junção.

 Exercício casa: Para cada projeto, obter o menor salario, o maior salario e a média salarial do seus funcionários.

SELECT p.codproj, p.nome, COUNT() FROM Projeto p, Alocacao a WHERE p.codproj = a.proj GROUP BY p.codproj, p.nome*

  • Para cada projeto que possui mais de 2 empregados trabalhando, obter o código do projeto, nome do projeto e número de empregados que trabalha neste projeto
  • Uma query é avaliada primeiro aplicando a cláusula WHERE e depois GROUP BY HAVING
  • Exercicio sala: Exercício de sala: Qual o menor e o maior salário dos funcionários dos departamento que têm 3 ou mais funcionários. ( minutos)

SELECT p.codproj, p.nome, COUNT() FROM Projeto p, Alocacao a WHERE p.codproj = a.codproj GROUP BY codproj, nome HAVING COUNT() > 2**

  • Qual a quantidade em estoque de cada tipo

do produto? Deve-se ter a tabela abaixo como

resposta.

  • Qual a quantidade de produtos em estoque de

cada fabricante? Deve-se ter a tabela abaixo

como resposta.

  • Qual o tipo e a quantidade de produtos em

estoque que possuem mais de 200 unidade

estocadas.