Pular para o conteúdo principal

Questão de Arquitetura de Software — Banco de Dados — FUNDEP (Gestão de Concursos) 2024

Arquitetura de SoftwareBanco de Dados
Código
qg185641
Banca
FUNDEP (Gestão de Concursos)
Órgão
HRTN - MG
Ano
2024
Nível
Superior
Cargo
Desenvolvedor Full Stack
Com base no script apresentado, assinale a alternativa que apresenta a consulta responsável por exibir a quantidade de imóveis que já tenham sido alugados, cujo valor é igual ou superior a 700 mil reais.
  1. ASELECT COUNT(*) FROM imoveis
  2. BSELECT SUM(*) FROM imoveis WHERE valor >= 700000
  3. CSELECT COUNT(*) FROM imoveis JOIN alugueis ON id = imoveis_id WHERE valor >= 700000
  4. DSELECT SUM(imoveis_id) FROM imoveis LEFT JOIN alugueis ON id = imoveis_id AND valor >= 700000
Revelar gabarito e comentário

GabaritoC — SELECT COUNT(*) FROM imoveis JOIN alugueis ON id = imoveis_id WHERE valor >= 700000

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

SQL: consulta para contar imóveis alugados com valor >= 700 mil

Gabarito: Letra C. A consulta SELECT COUNT(*) FROM imoveis JOIN alugueis ON id = imoveis_id WHERE valor >= 700000 é a única que combina a junção das tabelas para filtrar apenas imóveis que já foram alugados e aplica a condição de valor. Embora tecnicamente falte DISTINCT para evitar contagem múltipla de imóveis com mais de um aluguel, a banca considerou C como a resposta correta dentre as opções.

A questão testa o entendimento de JOIN e COUNT. A tabela alugueis possui chave primária composta por imoveis_id, inquilinos_id e data_inicio, permitindo múltiplos registros para o mesmo imóvel. Assim, a consulta em C conta cada linha do resultado da junção, o que superestima a quantidade de imóveis se houver repetições. A alternativa ideal seria SELECT COUNT(DISTINCT imoveis.id) FROM imoveis JOIN alugueis ON id = imoveis_id WHERE valor >= 700000, mas não está entre as opções.

  1. 1JOIN imoveis × alugueis
  2. 2Filtro: valor >= 700000
  3. 3COUNT(*) das linhas resultantes
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

SELECT COUNT(*) FROM imoveis conta todos os imóveis, sem qualquer condição de valor ou restrição a imóveis alugados. Não atende ao enunciado.

Alternativa B — ❌ Incorreta

SELECT SUM(*) FROM imoveis WHERE valor >= 700000 usa SUM(*), que é inválido (SUM deve receber uma expressão numérica), e não considera a condição de já ter sido alugado. Sintaticamente errado.

Alternativa C — ✅ Correta ⟵ GABARITO

SELECT COUNT(*) FROM imoveis JOIN alugueis ON id = imoveis_id WHERE valor >= 700000 realiza a junção entre imoveis e alugueis pela chave estrangeira, filtrando apenas imóveis com valor >= 700000. O COUNT(*) retorna o número de linhas resultantes, que corresponde aos aluguéis desses imóveis. Apesar da possível duplicação, é a única alternativa logicamente coerente.

Alternativa D — ❌ Incorreta

SELECT SUM(imoveis_id) FROM imoveis LEFT JOIN alugueis ON id = imoveis_id AND valor >= 700000 soma os IDs dos imóveis (sem significado) e usa LEFT JOIN, incluindo imóveis não alugados, além de colocar a condição de valor no ON, o que não filtra corretamente. Nada a ver com a contagem pedida.

NÃO CAIA NESSA!

A banca explora a diferença entre contar imóveis e contar linhas de aluguel. A alternativa C parece correta, mas sem DISTINCT pode superestimar. Nas provas, se houver opção com COUNT(DISTINCT), prefira-a; caso contrário, a junção simples pode ser aceita, como neste gabarito.

Gabarito: letra C — a única consulta que, dentre as opções, tenta atender aos requisitos.

Link permanente: /questoes/qg185641