Questão FC372829
Atribuiu-se uma tarefa a um técnico para, a partir da seguinte tabela de um banco de dados relacional: Item (ID, Nome, Tipo, Valor), gerar o comando SQL ANSI para obter o valor méd
Linguagem SQL
FCC · 2019
Atribuiu-se uma tarefa a um técnico para, a partir da seguinte tabela de um banco de dados relacional: Item (ID, Nome, Tipo, Valor), gerar o comando SQL ANSI para obter o valor médio de cada tipo de item, apenas para aqueles tipos que comecem com a letra ‘S’. O comando SQL solicitado é
- SELECT Tipo, Σ Valor/Number(Tipo); FROM Item WHERE Tipo IS ‘S% COUNT Tipo;
- SELECT Tipo, Σ Valor/Number(Tipo) FROM Item ORDER BY Tipo ( ‘S%’);
- SELECT Tipo, AVG (Valor) FROM Item GROUP BY Tipo (‘S%’);
- SELECT Tipo, AVG (Valor) FROM Item WHERE Tipo LIKE ‘S%’ GROUP BY Tipo;
- SELECT Tipo, Total (Valor)/Number (Tipo) FROM Item WHERE Tipo START ‘S%’ HAVING Tipo IN GROUP;
Mostrar resposta e comentário
Gabarito
D
Comentário do professor
SELECT retorna para cada Tipo o valor médio calculado pela função agregada AVG(Valor), ou seja, a média dos valores pertencentes a cada grupo.
A cláusula WHERE filtra as linhas antes do agrupamento: WHERE Tipo LIKE 'S%' mantém apenas os registros cujo campo Tipo começa com 'S'. O operador LIKE usa o padrão 'S%' onde «%» significa qualquer sequência de caracteres.
Depois do filtro, GROUP BY Tipo agrupa as linhas por tipo; para cada grupo a função AVG(Valor) calcula a média. A ordem lógica é: filtro (WHERE) → agrupar (GROUP BY) → agregar (AVG).
Matematicamente: \( \text{AVG(Valor)} = \dfrac{\sum Valor}{\text{contagem de linhas no grupo}} \). O resultado traz uma linha por Tipo com sua média.
Conteúdo do catálogo FC Concursos · Atualizado em