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.
- A)região / região
Correta, porque compara região com região e faz a média ser calculada dentro da mesma região administrativa do município da consulta externa.
- B)AM.nome / nome
Errada, porque nome não identifica a mesma região e não serve para correlacionar o cálculo da média por área administrativa.
- C)AM.regiao / região
Errada, porque AM.regiao até faz sentido na correlação, mas o segundo campo precisa ser a coluna da tabela interna com o mesmo valor, e não o rótulo textual 'região' do enunciado sem a correspondência adequada na estrutura apresentada.
- D)AM.receita / receita
Errada, porque receita com receita não relaciona a subconsulta à região e faria a média ser filtrada por valor arrecadado, não por agrupamento regional.
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.