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.
A 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:
A 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:- 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
- 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
- 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
- Dselect codigo, nome, sum(*) Quantidade, avg(valor) Mediafrom cliente inner join nota_fiscalon codigo = codigowhere avg(valor) > 230order by codigo
- 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