1
resposta

[Bug] Código SQL incorreto

Em uma das atividades de SQL é apresentado a questão:

"""
Imagine que você é um(a) analista de dados trabalhando para o Gatito Petshop, uma loja especializada em produtos e serviços para pets. Recentemente, o Gatito Petshop decidiu expandir seus serviços de hospedagem para pets e agora quer analisar os dados de aluguel desses espaços para entender melhor as tendências de ocupação e otimizar seus serviços. Para isso, você precisa criar uma procedure que simplifique a análise dos dados de aluguel por região, ano e por mês, permitindo uma consulta rápida e eficiente.

Considerando a necessidade de analisar os dados de aluguel de hospedagem para pets por região, ano e mês, qual das seguintes procedures você criaria para atender a essa demanda, garantindo uma manutenção fácil e uma consulta eficiente?
"""

Na plataforma a resposta correta está como sendo o SQL,do código abaixo:

DELIMITER //
CREATE PROCEDURE analisar_alugueis_por_regiao_mes(regiao_nome VARCHAR(255))
BEGIN
SELECT
YEAR(data_inicio) AS ano,
MONTH(data_inicio) AS mes,
COUNT(*) AS total_alugueis
FROM alugueis
JOIN hospedagens ON alugueis.hospedagem_id = hospedagens.hospedagem_id
JOIN enderecos ON hospedagens.endereco_id = enderecos.endereco_id
WHERE enderecos.regiao = regiao_nome
GROUP BY ano, mes
ORDER BY ano, mes;
END//
DELIMITER ;

Porém, a tabela enderecos não tem a coluna regiao.

Registros da consulta SQL

Seria necessário fazer um relacionamento com a tabela regioes_geograficas

DELIMITER //
CREATE PROCEDURE analisar_alugueis_por_regiao_mes(regiao_nome VARCHAR(255))
BEGIN
SELECT
YEAR(data_inicio) AS ano,
MONTH(data_inicio) AS mes,
COUNT(*) AS total_alugueis
FROM alugueis
JOIN hospedagens ON alugueis.hospedagem_id = hospedagens.hospedagem_id
JOIN enderecos ON hospedagens.endereco_id = enderecos.endereco_id
JOIN regioes_geograficas as rg on enderecos.estado = rg.estado
WHERE rg.regiao = regiao_nome
GROUP BY ano, mes
ORDER BY ano, mes;
END//
DELIMITER ;

1 resposta

Oi Jean, tudo bem?

No curso, o banco de dados utilizado é o insigth_places, uma empresa que trabalha com aluguel de imóveis, e realmente não há a coluna de região na tabela de endereços.

Porém, esta atividade é independente do projeto do curso, pois utiliza um cenário diferente, o de um Petshop. Por isso, as estruturas das tabelas não coincidem com as do projeto principal.

Neste caso, o desafio é definir qual consulta faz sentido para o cenário da atividade e qual delas traria o resultado esperado.

Espero ter esclarecido.

Qualquer dúvida que surgir, compartilhe no fórum. Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!