Considere a seguinte tabela de um banco de dados relacional:...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: C
A questão aborda o conceito de agregação de dados em um banco de dados relacional, utilizando o SQL (Structured Query Language) para realizar operações de agrupamento e filtragem de dados. Para resolver essa questão, é importante compreender o uso da função de agregação AVG(), que calcula o valor médio de um conjunto de valores, e o cláusulas GROUP BY e HAVING.
A função de agregação AVG() é utilizada para calcular a média de um conjunto de valores numéricos. No contexto da questão, queremos saber o valor médio da coluna Quantidade agrupado por Tipo. A cláusula GROUP BY permite agrupar os resultados de uma consulta SQL por uma ou mais colunas, neste caso, pelo Tipo de item. Já a cláusula HAVING é utilizada para filtrar os grupos resultantes da agregação, baseando-se em uma condição especificada, similar ao WHERE, mas aplicada após a agregação dos dados.
O comando correto para obter o resultado desejado é:
FROM Item
GROUP BY Tipo
HAVING AVG(Quantidade) > 500;
Neste comando SQL, selecionamos a coluna Tipo e a média de Quantidade da tabela Item, agrupamos os resultados por Tipo e filtramos os grupos para incluir apenas aqueles que têm uma média de Quantidade superior a 500. A função AVG(Quantidade) calcula a média da coluna Quantidade para cada grupo de Tipo, e a cláusula HAVING garante que só os grupos com uma média acima de 500 sejam incluídos nos resultados finais.
As outras alternativas estão incorretas porque usam nomes de funções que não existem em SQL, como Quantidade-Média, LIMIT (Quantidade), MED (Quantidade), ou combinam operadores de agregação e cláusulas de maneira que não fazem sentido no contexto de uma consulta SQL válida.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Gabarito: C
A questão nos trouxe a seguinte tabela:
Item (ID, Nome, Quantidade, Tipo)
E pediu para completarmos o comando SQL que retorna o Tipo e a Quantidade média de cada Item, por Tipo de Item, apenas quando a média estiver superior a 500.
A consulta vai ficar assim:
1. SELECT Tipo, AVG (Quantidade)
2. FROM Item
3. GROUP BY Tipo
4. HAVING AVG (Quantidade) > 500;
O comando está retorna o tipo e a média da quantidade (linha 1) dos itens da tabela Item (linha 2), agrupados pelo atributo Tipo (linha 3) e apenas quando a média for maior que 500 (linha 4).
Importante salientar que a cláusula WHERE não aceita funções de agregação, de forma que a condição deve ser expressa na cláusula HAVING.
Bastava saber que AVG é abreviação de Average que traduzido para PTBR, significa MÉDIA. A questão queria saber comando para obter o tipo e o valor médio da quantidade.
Questão bastante simples. Gab: C.
só de saber a função de AVG ja mata
Vamos analisar as opções:
A. SELECT Tipo, Quantidade-Média FROM Item HAVING Quantidade-Média > 500; - Incorreta. O uso de Quantidade-Média não é válido na cláusula HAVING, e a sintaxe está incorreta.
B. SELECT Tipo, LIMIT (Quantidade) > 500 FROM Item GROUP BY Tipo - Incorreta. A função LIMIT não é usada dessa forma, e a sintaxe está incorreta.
C. SELECT Tipo, AVG (Quantidade) FROM Item GROUP BY Tipo HAVING AVG (Quantidade) > 500; - Correta. Esta consulta calcula a média da quantidade agrupada por tipo de item e, em seguida, filtra os resultados para incluir apenas aqueles com média de quantidade maior que 500.
D. SELECT Tipo, MED (Quantidade) FROM Item GROUP BY Tipo WHERE MED (Quantidade) > 500; - Incorreta. A função MED não é reconhecida em SQL e a sintaxe está incorreta.
E. SELECT Tipo, MAX - MIN (Quantidade) FROM Item GROUP BY Tipo FOR MAX – MIN (Quantidade) > 500; - Incorreta. A sintaxe está incorreta, e a expressão "MAX - MIN (Quantidade)" não é válida para calcular a média.
Portanto, a opção correta é a C. SELECT Tipo, AVG (Quantidade) FROM Item GROUP BY Tipo HAVING AVG (Quantidade) > 500.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo