Questão FC890513
Considere o script SQL a seguir. CREATE TABLE PROCESSOS ( id_processo INT PRIMARY KEY, comarca VARCHAR(100) NOT NULL, status VARCHAR(50) NOT NULL ); INSERT INTO PROCESSOS (id_proce
Tópicos Mesclados de Recursos de Segurança da Informação
FGV · 2026
Considere o script SQL a seguir.
CREATE TABLE PROCESSOS (
id_processo INT PRIMARY KEY,
comarca VARCHAR(100) NOT NULL,
status VARCHAR(50) NOT NULL
);
INSERT INTO PROCESSOS (id_processo, comarca, status)
VALUES
(1, 'Comarca A', 'Ativo'),
(2, 'Comarca A', 'Inativo'),
(3, 'Comarca B', 'Ativo'),
(4, 'Comarca C', 'Cancelado'),
(5, 'Comarca B', 'Ativo');
Para listar apenas as comarcas que possuem mais de um processo ativo, deve-se utilizar a query:
- SELECT comarca
FROM PROCESSOS
WHERE status = 'Ativo'
GROUP BY comarca
HAVING COUNT(*) > 1;
- SELECT DISTINCT comarca
FROM PROCESSOS
WHERE id_processo IN (
SELECT id_processo
FROM PROCESSOS
WHERE status = 'Ativo');
- SELECT comarca
FROM PROCESSOS
WHERE status = 'Ativo'
AND id_processo >= 1;
- SELECT comarca
FROM PROCESSOS
WHERE status = 'Inativo'
GROUP BY comarca
HAVING COUNT(*) > 1;
- SELECT comarca
FROM PROCESSOS
GROUP BY comarca
ORDER BY COUNT(*) DESC;
Mostrar resposta e comentário
Gabarito
A
Comentário do professor
A query funciona em três etapas claras: primeiro o WHERE restringe as linhas para considerar apenas os registros com status 'Ativo'.
Em seguida, o GROUP BY agrupa essas linhas por comarca, criando um conjunto por comarca contendo somente processos ativos.
Por fim, o HAVING filtra esses grupos com base em uma agregação. A expressão usada é \(COUNT(*) > 1\), que conta o número de linhas em cada grupo e mantém apenas as comarcas com mais de um processo ativo.
O SELECT comarca retorna os nomes das comarcas aprovadas pelo filtro. Note que a contagem é feita após o agrupamento, razão pela qual o critério usa HAVING e não WHERE.
Conteúdo do catálogo FC Concursos · Atualizado em