Considere a seguinte tabela de um banco de dados relacional:...
Item (ID, Nome, Quantidade, Tipo)
O comando SQL para obter o Tipo e a Quantidade média de cada Item, por Tipo de Item, apenas para médias abaixo de 200, tem a seguinte composição:
SELECT Tipo, AVG (Quantidade)
FROM Item
Subcomando 1
Subcomando 2
De forma a atender a essa consulta solicitada, os Subcomandos 1 e 2 devem ser, respectivamente,
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: A - GROUP BY Tipo e HAVING AVG(Quantidade) < 200.
Para resolver essa questão, é necessário entender o funcionamento de consultas agregadas em bancos de dados relacionais. O comando SQL SELECT é utilizado para recuperar dados de uma ou mais tabelas. Quando queremos calcular uma média (AVG), somar (SUM), contar (COUNT), entre outras funções agregadas, e agrupar esses resultados por alguma coluna, usamos o cláusula GROUP BY. No caso desta questão, queremos agrupar os dados pela coluna Tipo.
Além disso, para filtrar os grupos resultantes de uma agregação, utilizamos a cláusula HAVING. É importante ressaltar que a cláusula HAVING é aplicada após o agrupamento dos dados, enquanto a cláusula WHERE é aplicada antes da agregação. Isso significa que, se quisermos filtrar os dados com base em um resultado de uma função agregada, como é o caso da média de Quantidade, devemos usar HAVING e não WHERE.
Portanto, para calcular o Tipo e a Quantidade média de cada Item, por Tipo de Item, e restringir o resultado apenas para as médias abaixo de 200, o SQL correto é:
SELECT Tipo, AVG(Quantidade) FROM Item GROUP BY Tipo HAVING AVG(Quantidade) < 200
Essa consulta irá primeiro calcular a média de Quantidade para cada Tipo, agrupando esses valores pela coluna Tipo (Subcomando 1 - GROUP BY Tipo), e depois irá exibir somente aqueles grupos cuja média de Quantidade é menor que 200 (Subcomando 2 - HAVING AVG(Quantidade) < 200).
As outras alternativas são incorretas porque utilizam cláusulas que não são adequadas para filtrar resultados de funções agregadas (como WHERE) ou termos que não existem em SQL (como JOIN BY e ORDER BY para este contexto de uso).
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 A
Especifica um critério de pesquisa para um grupo ou uma agregação. HAVING pode ser usado somente com a instrução SELECT. HAVING é normalmente usado com uma cláusula GROUP BY. Quando GROUP BY não for usado, haverá um único grupo agregado e implícito.
"Retroceder Nunca Render-se Jamais !"
Força e Fé !
Fortuna Audaces Sequitur !
Existe apenas uma tabela no modelo, não tem motivos para utilizar o join!
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo