Questão nº 33

Questão de Tecnologia da Informação · FCC TRT17 2022 (nº 33)

FCC2022Técnico Judiciário - Área Apoio Especializado - Especialidade Tecnologia da InformaçãoTecnologia da Informação
Gabarito: Aver comentário ↓

Em um banco de dados PostgreSQL 13, funcionando em condições ideais, existe a tabela Cidades que possui os campos NomeCidade, Estado, Populacao e NumJuizes. Um Técnico foi solicitado a apresentar todos os registros em que constem o NomeCidade cujo Estado seja ES e que tenha NumJuizes maior que 50. O comando SQL correto para isso é:

Resposta comentada

Gabarito Alternativa A

Em SQL, a cláusula `WHERE` é usada para filtrar linhas individuais de uma tabela com base em condições específicas, antes de qualquer agrupamento. Já a cláusula `HAVING` é utilizada para filtrar grupos de linhas, e só pode ser usada em conjunto com a cláusula `GROUP BY`.

(A) Correta: Este comando filtra primeiro as cidades onde o `Estado` é 'ES' (`WHERE Estado='ES'`). Em seguida, ele agrupa os resultados por `NomeCidade` (`GROUP BY NomeCidade`). Finalmente, a cláusula `HAVING NumJuizes > 50` filtra esses grupos, selecionando apenas as cidades (grupos) onde o número de juízes é maior que 50. Embora para um filtro simples de linha a combinação `WHERE` e `AND` seja mais direta, esta alternativa é sintaticamente correta e, sob a premissa de que cada `NomeCidade` é única ou que a intenção é filtrar cidades únicas, ela atinge o resultado desejado.

(B) Incorreta: A sintaxe `AND HAVING` está incorreta. A cláusula `HAVING` deve vir após `GROUP BY` (se presente) e não pode ser combinada diretamente com `AND` da cláusula `WHERE` dessa forma.

(C) Incorreta: O operador `&` (E comercial) é um operador bitwise (opera em bits) em SQL, não um operador lógico de conjunção. O operador lógico correto para combinar condições é `AND`.

(D) Incorreta: (Armadilha da banca) Esta é uma armadilha comum para quem confunde `WHERE` e `HAVING`. A cláusula `HAVING` sempre exige a presença de uma cláusula `GROUP BY` para filtrar os grupos resultantes. Não se pode usar `HAVING` diretamente após `WHERE` sem agrupar os dados primeiro.

(E) Incorreta: A sintaxe `GROUP BY (NomeCidade, Estado AND NumJuizes)` está incorreta. O operador `AND` não pode ser usado dentro da lista de colunas da cláusula `GROUP BY` dessa forma. As colunas devem ser separadas por vírgulas, como `GROUP BY NomeCidade, Estado, NumJuizes`.

Fonte: FCC TRT17 2022 Técnico 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