SQL – Agrupamento e funções de agregação
Gabarito: letra C. A consulta deve retornar o Tipo e o valor médio dos itens agrupados por Tipo. Isso exige o uso da cláusula GROUP BY combinada com a função de agregação AVG(), que é exatamente o que a alternativa C apresenta.
A banca testa o conhecimento sobre agrupamento em SQL. A sintaxe correta é SELECT Tipo, AVG(Valor) FROM Item GROUP BY Tipo. As demais alternativas contêm erros de sintaxe, uso indevido de cláusulas ou funções inexistentes.
Alternativa A — ❌ Incorreta
SELECT Tipo, Valor_Médio FROM Item ORDER BY Tipo – A coluna Valor_Médio não existe na tabela original (não é um alias) e não há função de agregação. A cláusula ORDER BY apenas ordena, mas não agrupa nem calcula médias.
Alternativa B — ❌ Incorreta
SELECT Tipo, SUM(Valor) FROM Item HAVING SAME Tipo – A cláusula HAVING é usada para filtrar grupos após GROUP BY, mas aqui não há GROUP BY. Além disso, SAME não é uma palavra-chave SQL válida. A função SUM calcula soma, não média.
Alternativa C — ✅ Correta ⟵ GABARITO
SELECT Tipo, AVG(Valor) FROM Item GROUP BY Tipo – A cláusula GROUP BY Tipo agrupa as linhas por tipo, e AVG(Valor) calcula a média dos valores dentro de cada grupo. Esta é a consulta correta para obter o tipo e o valor médio dos itens de mesmo tipo.
Alternativa D — ❌ Incorreta
SELECT Tipo, COUNT(Valor) FROM Item WHERE Tipo IN SET – COUNT conta o número de valores, não calcula média. A expressão IN SET é inválida – a sintaxe correta seria IN (valor1, valor2, ...) ou uma subconsulta. Além disso, não há GROUP BY, então o resultado seria uma única linha com o total de itens, não agrupado por tipo.
Alternativa E — ❌ Incorreta
SELECT Tipo, Média(Valor) FROM Item – Média não é uma função SQL padrão; o nome correto é AVG. Também falta GROUP BY, o que faria a consulta retornar apenas um tipo (provavelmente o primeiro) e um erro ou valor agregado único.
Gabarito: letra C.