Pular para o conteúdo principal

Questão de Banco de Dados — SQL — FUNDATEC 2020

Banco de DadosSQL
Código
qq580062
Banca
FUNDATEC
Órgão
Prefeitura de Bagé - RS
Ano
2020
Nível
Superior
Cargo
Informata
A questão baseia-se nas Figuras 6(a), 6(b) e 6(c) abaixo. A Figura 6(a) mostra as declarações SQL que permitiram criar, em um Sistema Gerenciador de Banco de Dados (SGBD), as tabelas relacionais "CLIENTE" e "NOTA_FISCAL", que registram os dados dos clientes e das respectivas notas fiscais associadas a tais clientes. A Figura 6(b) exibe os campos de tais tabelas e todos os dados que elas armazenam no momento. A Figura 6(c) mostra o resultado de uma consulta realizada sobre tais tabelas nesse SGBD.Imagem associada para resolução da questãoA Figura 6(c) exibe o resultado de uma consulta realizada sobre as tabelas da Figura 6(b), que atendeu às seguintes condições: (1) apresentar o código e nome de cada cliente, assim como a quantidade total de compras que cada um deles realizou e a respectiva média dos valores de tais compras; (2) exibir apenas os dados dos clientes, cujo valor médio de todas as suas compras seja maior que 230; e (3) ordenar o resultado pelo código dos clientes, de forma descendente. Portanto, para se obter o resultado exibido na Figura 6(c), bastou executar, nesse SGBD, a seguinte consulta SQL:
  1. Aselect cliente.codigo, cliente.nome, sum(*) Quantidade, avg(nota_fiscal.valor) Mediafrom cliente c, nota_fiscal nfwhere c.codigo = nf.codigogroup by c.codigo, c.nomehaving avg(nota_fiscal.valor) > 230order by c.codigo
  2. Bselect c.codigo, c.nome, count(numero) Quantidade, avg(nf.valor) Mediafrom cliente c, nota_fiscal nfwhere c.codigo = nf.codigogroup by c.codigo, c.nomehaving avg(nf.valor) > 230order by c.codigo desc
  3. Cselect c.codigo, nome, count(numero) Quantidade, avg(nf.valor) Mediafrom inner join cliente c, nota_fiscal nfon c.codigo = nf.codigowhere avg(nf.valor) > 230order by codigo desc
  4. Dselect codigo, nome, sum(*) Quantidade, avg(valor) Mediafrom cliente inner join nota_fiscalon codigo = codigowhere avg(valor) > 230order by codigo
  5. Eselect codigo, nome, Quantidade, Mediafrom clientewhere codigo in(select c.codigo, count (*) Quantidade,avg(valor) Mediafrom cliente c, nota_fiscal nfwhere c.codigo = nf.codigo andavg valor > 230)order by c.codigo desc
Revelar gabarito e comentário

GabaritoB — select c.codigo, c.nome, count(numero) Quantidade, avg(nf.valor) Media from cliente c, nota_fiscal nf where c.codigo = nf.codigo group by c.codigo, c.nome having avg(nf.valor) > 230 order by c.codigo desc

Link permanente: /questoes/qq580062