Assinale a opção em que a instrução SQL apresentada, quando executada, permite mostrar a quantidade de contratos ativos de determinado órgão no ano de 2023.
- A)SELECT SUM (*) FROM contrato WHERE situacao IN 'ATIVO' AND ano= 2023;
Errada, porque SUM(*) não é a função adequada para contar registros e ainda há problema de sintaxe em IN 'ATIVO', que deveria comparar um valor ou usar IN com lista.
- B)SELECT AVG (*) FROM contrato WHERE situacao = 'ATIVO' AND ano= 2023;
Errada, porque AVG(*) calcula média, não quantidade, embora a condição situacao = 'ATIVO' esteja sintaticamente coerente.
- C)SELECT COUNT (*) FROM contrato WHERE situacao IN 'ATIVO' OR ano= 2023;
Errada, porque COUNT(*) conta registros, mas o uso de OR faz a consulta incluir contratos ativos ou contratos de 2023, e não necessariamente os dois critérios juntos.
- D)SELECT MAX (*) FROM contrato WHERE situacao = 'ATIVO' OR ano= 2023;
Errada, porque MAX(*) não serve para contar linhas e o uso de OR novamente enfraquece o filtro, aceitando registros que atendam só uma condição.
- E)SELECT COUNT (*) FROM contrato WHERE situacao = 'ATIVO' AND ano= 2023;
Certa, porque COUNT(*) conta os contratos e as condições situacao = 'ATIVO' AND ano = 2023 selecionam exatamente os registros ativos do ano de 2023.
Gabarito: E
Em SQL, a ideia de "quantidade" normalmente pede a função COUNT(*), que conta registros que atendem aos filtros da consulta. Já SUM soma valores numéricos, AVG tira média e MAX busca o maior valor, então nenhuma dessas mede quantidade de contratos. Aqui, o enunciado quer contar os contratos ativos de um órgão no ano de 2023, ou seja, filtrar pela situação e pelo ano antes de contar os registros. Por isso, a estrutura correta é selecionar COUNT(*) na tabela contrato, com condição situacao = 'ATIVO' e ano = 2023. O operador AND é essencial porque os dois critérios precisam ser verdadeiros ao mesmo tempo: o contrato tem de estar ativo e também pertencer a 2023. Se usar OR, a consulta passa a aceitar contratos que cumpram só um dos requisitos, o que distorce o resultado. Na prática de prova, pense assim: COUNT conta linhas, SUM soma, AVG calcula média, MAX pega o maior. A banca CESPE/CEBRASPE gosta muito dessa troca de função e também de pegar o candidato no detalhe lógico dos operadores AND e OR. Aqui, o gabarito está correto porque a consulta conta exatamente os registros que satisfazem as duas condições exigidas pelo enunciado.