Dúvida em questão de prova sobre SQL
25/08/2019
0
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);
(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
Curtir tópico
+ 0
Responder
Post mais votado
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.
Emerson Nascimento
Responder
Mais Posts
26/08/2019
Sandro
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!
Responder
26/08/2019
Pablo Ruiz
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
https://www.devmedia.com.br/conceitos-e-sintaxe-do-group-by-totalizando-dados-sql-server-2008-parte-1/19838
Responder
Clique aqui para fazer login e interagir na Comunidade :)