Pular para o conteúdo principal

Questão de Banco de Dados — SQL — FGV 2025

Banco de DadosSQL
Código
fg123975
Banca
FGV
Órgão
TRT - 24ª REGIÃO (MS)
Ano
2025
Nível
Superior
Cargo
Área Apoio Especializado - Tecnologia da Informação (Reaplicação)
O PostgreSQL é um SGBD gratuito de código aberto que suporta consultas relacionais em linguagem SQL.Com relação ao SQL do PostgreSQL, analise as afirmativas a seguir.I. A cláusula GROUP BY agrupa linhas com os mesmos valores em linhas de resumo, sendo frequentemente usada com funções de agregação como, por exemplo, COUNT( ), MAX( ), MIN( ), SUM( ) e AVG( ), para agrupar um conjunto de resultados de uma ou mais colunas.II. O operador HAVING foi adicionado ao SQL porque o WHERE não pode ser usado com funções de agregação, as quais são frequentemente usadas com a cláusula GROUP BY. Ao adicionar o HAVING é possível escrever condições similares às das cláusulas WHERE.III. A expressão CASE testa condições e retorna um valor quando a primeira condição é atendida (como uma instrução if-thenelse); quando a condição seja verdadeira, ele parará a leitura e retornará o resultado, mas, se nenhuma condição for verdadeira, ele retornará o valor da cláusula ELSE. Caso não houver nenhum ELSE e nenhuma condição for verdadeira, ele retornará o valor NULL.Está correto o que se afirma em
  1. AI e II, apenas.
  2. BI e III, apenas.
  3. CII e III, apenas.
  4. DI e IV, apenas.
  5. EIII e IV, apenas.
Revelar gabarito e comentário

GabaritoB — I e III, apenas.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

SQL: GROUP BY, HAVING e CASE

Gabarito: letra B. Estão corretas apenas as afirmativas I e III. A afirmativa II contém imprecisão conceitual sobre a cláusula HAVING, conforme explicado a seguir.

SQL: cláusulas de agregação
  • 1GROUP BY
    • Agrupa linhas com valores iguais
    • Usado com funções de agregação
      • COUNT, SUM, AVG, MAX, MIN
  • 2HAVING
    • Filtra grupos após a agregação
    • Aceita funções de agregação
    • Difere do WHERE (filtra linhas antes)
  • 3CASE
    • Avalia condições em sequência
    • Retorna valor da 1ª condição verdadeira
    • Se nenhuma → ELSE ou NULL
LEVEL · soulevel.com.br

Item I — ✅ Correto

A cláusula GROUP BY realmente agrupa linhas com valores idênticos em uma ou mais colunas, permitindo o uso de funções de agregação (COUNT, SUM, AVG, MAX, MIN) para gerar resumos por grupo. Essa é a definição padrão do SQL.

Item II — ❌ Incorreto

A afirmativa diz que "o WHERE não pode ser usado com funções de agregação" – isso é verdade: WHERE filtra linhas antes da agregação e não aceita funções de agregação diretamente. Contudo, a conclusão de que o HAVING foi adicionado para "escrever condições similares às das cláusulas WHERE" é imprecisa. O HAVING foi criado para filtrar grupos após a agregação, e suas condições podem incluir funções de agregação, o que o diferencia do WHERE. A redação da afirmativa sugere que HAVING é apenas um substituto para WHERE em contextos de agregação, ignorando que sua finalidade é específica para grupos.

Item III — ✅ Correto

A expressão CASE funciona exatamente como descrito: avalia condições em sequência, retorna o valor da primeira condição verdadeira e para a leitura. Se nenhuma condição for verdadeira, retorna o valor do ELSE; se não houver ELSE, retorna NULL. Esse comportamento é padrão no SQL.

Corretas: I e III ⇒ Gabarito: letra B.

Link permanente: /questoes/fg123975