Professor de Ensino Fundamental e Médio (Educação Profissional) - Eixo 5 - Informação e Comunicação
Analise o comando SQL que João produziu.select Tipo, sum(Quantidade) Totalfrom Vendawhere Quantidade is not nullgroup 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 TotalNesse caso são possíveis as opções
A1, 2, 3, 4, 5.
B1, 2, 3, 4, apenas.
C1, 4, 5, apenas.
D1, 2, 4, 5, apenas.
E4, 5, apenas.
Revelar gabarito e comentário▾
GabaritoD — 1, 2, 4, 5, apenas.
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
ORDER BY em consulta com GROUP BY
Gabarito: letra D. São possíveis as opções 1, 2, 4 e 5. A opção 3 (order by Quantidade) é inválida porque a coluna Quantidade não está no GROUP BY nem é uma função de agregação, violando a regra de que, após GROUP BY, apenas colunas do GROUP BY ou expressões agregadas podem ser usadas no ORDER BY.
A consulta original agrupa por Tipo e calcula sum(Quantidade) como Total. Vamos analisar cada opção:
Opção 1 — order by 2 — ✅ Possível
Ordena pela segunda coluna do SELECT, que é sum(Quantidade) (alias Total). A ordenação por posição ordinal é válida em SQL.
Opção 2 — order by avg(Quantidade) — ✅ Possível
avg(Quantidade) é uma função de agregação. Em consultas com GROUP BY, é permitido usar funções de agregação no ORDER BY, mesmo que não estejam no SELECT, pois o resultado já está agregado por grupo.
Opção 3 — order by Quantidade — ❌ Impossível
Quantidade não está no GROUP BY e não é uma expressão agregada. Após o GROUP BY, cada grupo produz uma única linha, e referir-se a uma coluna não agregada sem agrupamento é semanticamente ambíguo. A maioria dos bancos de dados rejeita essa cláusula (exceto em modos não padrão, como MySQL com sql_mode restrito).
Opção 4 — order by sum(Quantidade) — ✅ Possível
Mesma função de agregação usada no SELECT. Válida.
Opção 5 — order by Total — ✅ Possível
Total é o alias definido no SELECT para sum(Quantidade). O uso de alias no ORDER BY é permitido.
Opção
Cláusula ORDER BY
Possível?
Motivo
1
order by 2
✅
Ordena pela 2ª coluna do SELECT (sum(Quantidade) / alias Total). Posição ordinal é válida.
2
order by avg(Quantidade)
✅
Função de agregação. Permitida no ORDER BY mesmo sem estar no SELECT, pois o resultado já está agregado por grupo.
3
order by Quantidade
❌
Coluna Quantidade não está no GROUP BY nem é função de agregação. Ambígua após agregação.
4
order by sum(Quantidade)
✅
Função de agregação idêntica à do SELECT. Válida.
5
order by Total
✅
Alias definido no SELECT para sum(Quantidade). Uso de alias no ORDER BY é permitido.
PEGA ESSA DICA!
Em consultas com GROUP BY, memorize que:
Colunas do ORDER BY devem estar no GROUP BY ou serem funções de agregação.
Alias e posições ordinais são aceitos.
Funções de agregação podem ser usadas mesmo se não listadas no SELECT.