Pular para o conteúdo principal

Questão de Banco de Dados — MySQL — Avança SP 2023

Banco de DadosMySQL
Código
qq830797
Banca
Avança SP
Órgão
DAE-Santa Bárbara d’Oeste
Ano
2023
Nível
Médio
Cargo
Técnico em Tecnologia da Informação
Qual das seguintes funções agregadas não é suportada pelo MySQL?
  1. AAVG() - calcula a média de todos os valores de uma coluna.
  2. BMIN() – retorna o menor valor de todos os valores de uma coluna.
  3. CINTERVAL() – retorna um conjunto de valores entre um intervalo especificado.
  4. DMAX() – retorna o maior valor de todos os valores de uma coluna.
  5. ECOUNT() – retorna a quantidade de valores de uma coluna.
Revelar gabarito e comentário

GabaritoC — INTERVAL() – retorna um conjunto de valores entre um intervalo especificado.

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”.

Funções de agregação no MySQL

Gabarito: letra C. A função INTERVAL() não é uma função de agregação suportada pelo MySQL — ela é uma função de comparação de intervalos, usada para retornar a posição de um valor em uma lista de intervalos, e não para resumir dados de múltiplas linhas em um único valor. As funções de agregação clássicas do SQL são AVG(), MIN(), MAX(), COUNT() e SUM(), todas presentes nas demais alternativas.

As funções de agregação são um dos pilares da linguagem SQL: elas recebem um conjunto de valores (as tuplas de uma coluna, possivelmente filtradas por WHERE ou agrupadas por GROUP BY) e devolvem um único valor-resumo. É por isso que também são chamadas de funções de conjunto ou funções estatísticas. O MySQL implementa o padrão SQL e traz embutidas as principais: COUNT() conta linhas, SUM() soma valores numéricos, AVG() calcula a média, MIN() e MAX() retornam, respectivamente, o menor e o maior valor de uma coluna. A sintaxe básica é sempre SELECT FUNCAO(coluna) FROM tabela [WHERE condição].

A pegadinha desta questão está em distinguir função de agregação de função escalar/comparativa. A função INTERVAL() existe no MySQL, mas não agrega nada: ela recebe um valor N e uma lista de valores de referência N1, N2, N3... e retorna o índice da posição em que N se encaixaria nessa lista ordenada. Por exemplo, INTERVAL(23, 1, 15, 17, 30, 44, 200) retorna 3, pois 23 é menor que 30 (o 4º valor da lista) e maior que 17 (o 3º). Ou seja, ela trabalha com uma única linha de cada vez, comparando valores — não resume um conjunto de linhas. É uma função de comparação, não de agregação.

Outra confusão comum é pensar que INTERVAL() se relaciona com a cláusula BETWEEN, que verifica se um valor está dentro de um intervalo. Mas BETWEEN é um operador de comparação usado no WHERE, e INTERVAL() é uma função que retorna um número inteiro (a posição). Nenhuma das duas é função de agregação. Para fixar: as funções de agregação do MySQL são exatamente COUNT, SUM, AVG, MIN, MAX (e algumas variações como GROUP_CONCAT, STDDEV, VARIANCE), todas operando sobre conjuntos de linhas.

A banca explora justamente o nome sugestivo de INTERVAL() — o candidato pode associá-lo a "intervalo de valores" e achar que é uma agregação. Mas o critério decisivo é simples: função de agregação resume múltiplas linhas em um único valor; INTERVAL() compara um valor contra uma lista e retorna uma posição, sem resumir nada.

Funções de agregação (MySQL)
  • 1Resumem várias linhas em um único valor
    • COUNT()
    • SUM()
    • AVG()
    • MIN()
    • MAX()
  • 2Variações
    • GROUP_CONCAT()
    • STDDEV()
    • VARIANCE()
  • 3Não é agregação
    • INTERVAL()
      • Compara valor contra lista
      • Retorna posição (índice)
LEVEL · soulevel.com.br

Alternativa A — ✅ Correta

AVG() é uma função de agregação legítima do MySQL. Ela calcula a média aritmética dos valores de uma coluna numérica, ignorando valores NULL no cálculo. A descrição da alternativa está correta.

Alternativa B — ✅ Correta

MIN() é uma função de agregação que retorna o menor valor de uma coluna. Funciona com tipos numéricos, de data e até strings (comparação lexicográfica). A descrição está correta.

Alternativa C — ❌ Incorreta ⟵ GABARITO

INTERVAL() não é uma função de agregação. Ela é uma função de comparação que retorna a posição de um valor em uma lista de intervalos. A descrição da alternativa — "retorna um conjunto de valores entre um intervalo especificado" — também está errada, pois ela não retorna um conjunto de valores, e sim um índice inteiro. É a única alternativa que não corresponde a uma função de agregação suportada pelo MySQL.

Alternativa D — ✅ Correta

MAX() é uma função de agregação que retorna o maior valor de uma coluna. Assim como MIN(), funciona com diversos tipos de dados. A descrição está correta.

Alternativa E — ✅ Correta

COUNT() é uma função de agregação que retorna o número de linhas que atendem a um critério. COUNT(*) conta todas as linhas, enquanto COUNT(coluna) conta apenas as linhas onde a coluna não é NULL. A descrição está correta.

NÃO CAIA NESSA!

A banca aposta no nome sugestivo de INTERVAL() para fazer o candidato acreditar que ela agrega valores de um intervalo. Mas o critério é outro: função de agregação resume várias linhas em um único valor; INTERVAL() compara um único valor contra uma lista e retorna um índice — é função de comparação, não de agregação. Guarde as cinco clássicas: COUNT, SUM, AVG, MIN, MAX.

Gabarito: letra C — a única que não é função de agregação do MySQL.

Link permanente: /questoes/qq830797