Pular para o conteúdo principal

Questão de Banco de Dados — Consultas e Comandos em SQL — CESGRANRIO 2023

Banco de DadosConsultas e Comandos em SQL
Código
cg057517
Banca
CESGRANRIO
Órgão
TRANSPETRO
Ano
2023
Cargo
PTNS ( )

1. Dim_Automóvel:

  • Modelo_ID (identificador único para cada modelo de carro)
  • Nome_Modelo (por exemplo: Corolla, Civic, Tucson)
  • Tipo (por exemplo: Sedan, SUV, Coupe)
  • Ano_Lançamento


2. Dim_Fabricante:

  • Fabricante_ID (identificador único para cada fabricante)
  • Nome_Fabricante (por exemplo: Toyota, Honda, Ford)
  • País_Origem (por exemplo: Japão, EUA, Alemanha)


3. Dim_Revendedora:

  • Revendedora_ID (identificador único para cada revendedora)
  • Nome_Revendedora
  • Localização (cidade e estado)
  • Tipo_Revenda (por exemplo: autorizada, independente)
 

A tabela Vendas, que representa fatos, contém as seguintes colunas:

 

• Modelo_ID (chave estrangeira para Dim_Automóvel)
• Fabricante_ID (chave estrangeira para Dim_Fabricante)
• Revendedora_ID (chave estrangeira para Dim_Revendedora)
• Quantidade_Vendida
• Receita_Total (o total em vendas para essa tripla: modelo, fabricante e revendedora)
• Data_Venda

Em um banco de dados multidimensional, frequentemente modelado como um cubo de dados, as dimensões são diferentes perspectivas sob as quais os dados podem ser analisados, e os fatos são os dados mais importantes que são analisados ou consultados em relação a essas dimensões.   Considere um esquema multidimensional que envolve automóveis, os fabricantes e as revendedoras de carros, com as tabelas Dimensão apresentadas a seguir:     Qual das seguintes expressões, na linguagem de consultas SQL, retorna a receita total de vendas de carros do tipo SUV em 2023, agrupada por fabricante, na cidade de São Paulo?
  1. ASELECT f.Nome_Fabricante, SUM(v.Receita_Total) AS Receita_Total FROM Tbl_Vendas v JOIN Dim_Automóvel a ON v.Modelo_ID = a.Modelo_ID WHERE a.Tipo = 'SUV' AND r.Localização = 'São Paulo' AND a.Ano_Lançamento = 2023 GROUP BY f.Nome_Fabricante;
  2. BSELECT f.Nome_Fabricante, SUM(v.Receita_Total) AS Receita_Total FROM Tbl_Vendas v LEFT JOIN Dim_Automóvel a ON v.Modelo_ID = a.Modelo_ID JOIN Dim_Fabricante f ON v.Fabricante_ID = f.Fabricante_ID WHERE a.Tipo = 'SUV' AND a.Ano_Lançamento = 2023 GROUP BY f.Nome_Fabricante;
  3. CSELECT f.Nome_Fabricante, SUM(v.Receita_Total) AS Receita_Total FROM Tbl_Vendas v JOIN Dim_Automóvel a ON v.Modelo_ID = a.Modelo_ID JOIN Dim_Fabricante f ON v.Fabricante_ID = f.Fabricante_ID JOIN Dim_Revendedora r ON v.Revendedora_ID = r.Revendedora_ID WHERE a.Tipo = 'SUV' AND a.Ano_Lançamento = 2023 AND r.Localização = 'São Paulo' GROUP BY f.Nome_Fabricante;
  4. DSELECT r.Localização, SUM(v.Receita_Total) AS Receita_Total FROM Tbl_Vendas v JOIN Dim_Automóvel a ON v.Modelo_ID = a.Modelo_ID JOIN Dim_Fabricante f ON v.Fabricante_ID = f.Fabricante_ID WHERE a.Tipo = 'SUV' AND a.Ano_Lançamento = 2023 GROUP BY r.Localização;
  5. ESELECT f.Nome_Fabricante, COUNT(v.Receita_Total) AS Receita_Total FROM Tbl_Vendas v JOIN Dim_Automóvel a ON v.Modelo_ID = a.Modelo_ID JOIN Dim_Fabricante f ON v.Fabricante_ID = f.Fabricante_ID JOIN Dim_Revendedora r ON v.Revendedora_ID = r.Revendedora_ID WHERE a.Tipo = 'SUV' AND a.Ano_Lançamento = 2023 AND r.Localização = 'São Paulo' GROUP BY f.Nome_Fabricante;
Revelar gabarito e comentário

GabaritoC — SELECT f.Nome_Fabricante, SUM(v.Receita_Total) AS Receita_Total FROM Tbl_Vendas v JOIN Dim_Automóvel a ON v.Modelo_ID = a.Modelo_ID JOIN Dim_Fabricante f ON v.Fabricante_ID = f.Fabricante_ID JOIN Dim_Revendedora r ON v.Revendedora_ID = r.Revendedora_ID WHERE a.Tipo = 'SUV' AND a.Ano_Lançamento = 2023 AND r.Localização = 'São Paulo' GROUP BY f.Nome_Fabricante;

Link permanente: /questoes/cg057517