Á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
AI e II, apenas.
BI e III, apenas.
CII e III, apenas.
DI e IV, apenas.
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.