← Questões de Banco de Dados

Banco de Dados · CONSULPLAN · 2025

Questão comentada de Banco de Dados

A equipe de TI da Prefeitura Municipal de Nova Iguaçu precisa otimizar a execução de consultas SQL para obter relatórios de arrecadação municipal de maneira eficiente. Para isso, um analista decidiu utilizar subconsultas correlacionadas. No entanto, o código SQL apresenta lacunas que impedem sua execução correta: SELECT nome, receita FROM arrecadacao_municipal AM WHERE receita > ( SELECT AVG(receita) FROM arrecadacao_municipal WHERE ______ = AM.______ ); Assinale a alternativa que completa correta e sequencialmente as lacunas, para que a consulta retorne os municípios que arrecadaram acima da média dentro de sua própria região administrativa.

Gabarito: A

Uma subconsulta correlacionada é aquela que usa um valor da consulta externa para montar o seu filtro. Aqui, a ideia é comparar a receita de cada município com a média de receita da sua própria região administrativa, então a subconsulta precisa enxergar a linha atual da tabela principal. É como dizer: "me mostra quem está acima da média, mas só do seu próprio grupo". No SQL, isso costuma aparecer com uma coluna da subconsulta sendo comparada com uma coluna da consulta externa. Por isso, no trecho WHERE ______ = AM.______, os dois lados precisam representar a mesma região, para que o AVG(receita) seja calculado dentro do grupo correto. Se você misturar nome, receita ou outro campo, a média deixa de ser regional e a lógica da consulta quebra. O gabarito A está correto porque completa a correlação com região / região: a subconsulta filtra os registros da mesma região administrativa do município da linha externa. Assim, a condição receita > AVG(receita) retorna apenas os municípios cuja arrecadação ficou acima da média da própria região. Em termos de SQL prático, esse é um uso clássico de subconsulta correlacionada para análise comparativa por grupo. Não há pegadinha de sintaxe complicada aqui: o ponto central é o vínculo entre a linha externa e o agrupamento interno. A lógica é totalmente alinhada com o comportamento esperado do AVG em um conjunto filtrado.

Continue treinando

Questões relacionadas