Analise o comando SQL que João produziu. select Tipo, sum(Q...
select Tipo, sum(Quantidade) Total from Venda where Quantidade is not null group by Tipo ...
Na linha pontilhada, João testou cinco opções para a cláusula order by, como segue.
(1) order by 2 (2) order by avg(Quantidade) (3) order by Quantidade (4) order by sum(Quantidade) (5) order by Total
Nesse caso são possíveis as opções
http://www.sqlfiddle.com/#!9/213d0b/9
Testando as seleções no mysql, todos funcionam.
marquei apenas 1,4,5; letra C.
O gabarito comentado também fala que a 2 tá incorreta.
não entendi foi nada
É claro que a opção 3 esta correto. Esse gabarito está errado, seria a letra A.
A
1, 2, 3, 4, 5. acho que seria essa
Alternativa correta: D - 1, 2, 4, 5, apenas.
Vamos analisar a questão e entender por que a alternativa correta é a D.
O comando SQL fornecido por João é:
select Tipo, sum(Quantidade) Total
from Venda
where Quantidade is not null
group by Tipo
...
Na linha pontilhada, João testou diferentes opções para a cláusula order by. Para resolver a questão, precisamos entender como a cláusula order by funciona e quais expressões são permitidas nesse contexto.
A cláusula order by é usada para ordenar o resultado de uma consulta SQL. Ela pode ordenar por:
- Índice da coluna (número)
- Nome da coluna
- Expressões que utilizam agregações (como sum, avg)
Vamos analisar cada uma das opções testadas por João:
1. order by 2
Essa opção é válida porque ordena o resultado pela segunda coluna do SELECT, que é sum(Quantidade) Total.
2. order by avg(Quantidade)
Embora avg(Quantidade) não esteja presente no SELECT, ele é válido em order by pois é uma expressão de agregação, e o SQL permite ordenar os resultados por expressões complexas.
3. order by Quantidade
Esta opção é inválida porque Quantidade não é uma coluna na lista de seleção e não é uma expressão de agregação válida nesse contexto.
4. order by sum(Quantidade)
Essa opção é válida porque sum(Quantidade) é uma expressão de agregação e está presente no SELECT como Total.
5. order by Total
Essa opção é válida porque Total é um alias definido para sum(Quantidade) na lista de seleção.
Com essas considerações, as opções válidas são: 1, 2, 4 e 5. Portanto, a alternativa correta é a D.
Agora, vamos justificar por que as outras alternativas estão incorretas:
A - 1, 2, 3, 4, 5.
Incorreta porque inclui a opção 3, que é inválida.
B - 1, 2, 3, 4, apenas.
Incorreta porque inclui a opção 3 e exclui a opção 5.
C - 1, 4, 5, apenas.
Incorreta porque exclui a opção 2, que é válida.
E - 4, 5, apenas.
Incorreta porque exclui as opções 1 e 2, que são válidas.
Conclusão: A alternativa correta é a D porque inclui todas as opções válidas (1, 2, 4 e 5) e exclui a opção inválida (3).