Questão nº 22

Questão de Tecnologia da Informação · FCC TRT5 2022 (nº 22)

FCC2022Analista Judiciário - Área Apoio Especializado - Especialidade Tecnologia da InformaçãoTecnologia da Informação
Gabarito: Dver comentário ↓

Atenção: O Modelo Entidade-Relacionamento abaixo deve ser utilizado para responder as questões de números 21 a 25.

Figura da questão de Tecnologia da Informação


Para exibir todos os nomes dos departamentos e a quantidade de funcionários de cada departamento utiliza-se a instrução SQL

Este texto de apoio vale também pra questão nº 21, questão nº 23, questão nº 24, questão nº 25.

Resposta comentada

Gabarito Alternativa D

Para exibir informações agregadas por categoria, como a contagem de itens por departamento, usamos funções de agregação (`COUNT`, `SUM`, `AVG`) em conjunto com a cláusula `GROUP BY`. Uma alternativa é usar uma subconsulta correlacionada, que executa uma consulta interna para cada linha da consulta externa.

(A) Incorreta: A coluna `f.nomeDepartamento` na cláusula `SELECT` da consulta externa não está definida no escopo da consulta externa, pois `f` é um alias da subconsulta. Isso resultaria em um erro de sintaxe.
(B) Incorreta: Similar à alternativa A, `f.nomeDepartamento` na cláusula `SELECT` e no `GROUP BY` da consulta externa não está no escopo, causando um erro.
(C) Incorreta: Esta consulta realiza um produto cartesiano (junção de todas as linhas de uma tabela com todas as linhas da outra) entre `funcionario` e `departamento` por não ter uma condição `WHERE` para relacioná-los. Além disso, `COUNT(f.nomeFuncionario)` sem um `GROUP BY` retornaria a contagem total de funcionários do produto cartesiano, não por departamento.
(D) Correta: Esta instrução utiliza uma subconsulta correlacionada. Para cada `d.nomeDepartamento` da tabela `departamento` (consulta externa), a subconsulta `(SELECT COUNT(f.nomeFuncionario) FROM funcionario f WHERE d.nomeDepartamento = f.nomeDepartamento)` conta os funcionários cujo departamento corresponde ao departamento atual da consulta externa. O `GROUP BY d.nomeDepartamento` na consulta externa é tecnicamente redundante aqui, pois a subconsulta já retorna um valor escalar para cada departamento único, mas é uma prática comum e não invalida a consulta.
(E) Incorreta: (Armadilha da banca) Esta alternativa realiza corretamente a junção entre as tabelas `funcionario` e `departamento` usando a cláusula `WHERE`. No entanto, `COUNT(f.nomeFuncionario)` sem a cláusula `GROUP BY d.nomeDepartamento` fará a contagem de todos os funcionários da junção, retornando um único valor total, e não a contagem de funcionários para cada departamento. Para obter a contagem por departamento, seria essencial adicionar `GROUP BY d.nomeDepartamento` ao final da instrução.

Fonte: FCC TRT5 2022 Analista Judiciário - Área Apoio Especializado - Especialidade Tecnologia da Informação (Caderno Tipo 001). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho