Considere a seguinte tabela de um banco de dados relacional:...

Próximas questões
Com base no mesmo assunto
Q411026 Banco de Dados
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,

Alternativas

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