Questão de Banco de Dados — Consultas e Comandos em SQL — FCC 2025
- Código
- fc150339
- Banca
- FCC
- Órgão
- Pref SP
- Ano
- 2025
- Cargo
- Ana ( )
Para atender aos requisitos de um departamento municipal de produtos agrícolas sobre a movimentação temporal entre locais dos produtos estocados, uma Analista criou e populou as seguintes tabelas Fato e Dimensões usando o modelo snowflake:
Tabela Fato:
CREATE TABLE FatoEstoque (
id INT PRIMARY KEY,
data DATE,
local_id INT,
produto_id INT,
volume lNT
);
Tabelas Dimensões:
CREATE TABLE DimLocal (
local_id INT PRIMARY KEY,
nome_ local VARCHAR(100),
endereco VARCHAR(255)
);
CREATE TABLE DimProduto (
produto_ id INT PRIMARY KEY,
nome_produto VARCHAR(100),
categoria VARCHAR(100)
);
CREATE TABLE DimData (
data DATE PRIMARY KEY,
ano INT,
mes INT,
dia INT
);
A seguir, ela escreveu corretamente a seguinte consulta SQL, que somou os produtos estocados em cada local para os anos de 2023 e 2024 e ordenou os resultados do local mais movimentado para o menos movimentado:
- ASELECT l. nome_ local, SUM ( f . volume) AS total_ volume FROM FatoEstoque f JOIN DimLocal l LIKE f . local id = l . local id JOIN DimData d LIKE f . dat a = d .data WHERE d . ano SUM (2023, 2024) GROUP BY l . nome local ORDER BY total_volume DESC;
- BSELECT l. nome_ local, ON(f.volume) AS total_ volume FROM FatoEstoque f JOIN DimLocal l ON f . local id = l. local id JOIN DimData d ON f .data = d .data WHERE d . ano MAX(2023, 2024) GROUP BY l . nome local ORDER BY total_volume DESC;
- CSELECT l. nome_ local, FOR ( f . volume) AS total volume FROM FatoEstoque f JOIN DimLocal l WITH f . local id = l. local id JOIN DimData d WITH f . data = d .data WHERE d . ano IN (2023, 2024) GROUP BY l . nome local ORDER BY total_volume DESC;
- DSELECT l. nome_ local, SUM (f . volume) AT total volume FROM FatoEstoque f JOIN DimLocal l IN f . local- id = l . local-id JOIN DimData d IN f . data = d . data WHERE d . ano SUM(2023, 2024) GROUP BY l . nome local ORDER BY total_volume DESC;
- ESELECT l. nome_ local, SUM ( f . volume) AS total volume FROM FatoEstoque f JOIN DimLocal l ON f . local id = l. local id JOIN DimData d ON f .data = d .data WHERE d . ano IN (2023, 2024) GROUP BY l . nome local ORDER BY total_volume DESC;