Dúvida em questão de prova sobre SQL

SQL

25/08/2019

Boa noite, pessoal. Alguém pode me ajudar com a questão abaixo? A alternativa correta é a letra A, porém eu não entendi o porquê. Alguém consegue me explicar?

Supondo que uma tabela chamada COMPONENTE contenha os atributos Id, Nome, Valor, Disponibilidade e Categoria. Com base nessa tabela, considerando a linguagem SQL, escolha uma das opções abaixo que apresenta o comando sintaticamente INCORRETO:

(A) SELECT Categoria, AVG(Valor), Nome FROM COMPONENTE GROUP BY Categoria;

(B) SELECT * FROM COMPONENTE WHERE Valor IS NOT NULL;

(C) SELECT Categoria, AVG (Valor) FROM COMPONENTE GROUP BY Categoria;

(D) SELECT Categoria, COUNT (*) FROM COMPONENTE GROUP BY Categoria HAVING COUNT(*) > 3;

(E) SELECT Nome, Valor FROM COMPONENTE WHERE Valor > (SELECT AVG(Valor) FROM COMPONENTE);
Sandro

Sandro

Curtidas 0

Melhor post

Emerson Nascimento

Emerson Nascimento

25/08/2019

Porque quando você usa group by, todos os campos não agregados devem ser agrupados. No caso, você está listando os campos Categoria e Nome, nas no group by colocou somente Categoria.
GOSTEI 1

Mais Respostas

Sandro

Sandro

25/08/2019

Porque quando você usa group by, todos os campos não agregados devem ser agrupados. No caso, você está listando os campos Categoria e Nome, nas no group by colocou somente Categoria.


Muito obrigado, cara!
GOSTEI 0
Pablo Ruiz

Pablo Ruiz

25/08/2019

Apenas para complementar as repostas, segue um link sobre conceito de sintaxe do group by.
https://www.devmedia.com.br/conceitos-e-sintaxe-do-group-by-totalizando-dados-sql-server-2008-parte-1/19838
GOSTEI 1
POSTAR