3
respostas

[Dúvida] Por ordem alfabética de nome só com mais de um passo usando sub select

Como o exercício não fornece o número total de inscritos, tenho que listar começando da menor nota (ASC) e limitar aos 100 primeiros (menores) valores. Mas aí a ordem alfabética vai ficar em segundo plano, depois da nota, me obrigando colocar esse SELECT dentro de outro SELECT com ORDER BY por nome, para aí sim listar esses 100 obtidos em ordem plenamente alfabética. A questão é que fazendo isso a complexidade foge do que foi abordado na aula. Então como pegar as 100 piores notas e ao mesmo tempo listar isso por ordem alfabética com o que foi aprendido na aula??

3 respostas

Oii, Santo! Tudo bem?

Para podermos completar o desafio proposto, dentro do contexto que foi aprendido em aula, é preciso listar os 100 últimos colocados na prova do vestibular, ordenar por ordem alfabética.

SELECT nome, nota
From notas
ORDER BY nota ASC, nome ASC
LIMIT 100;

A consulta acima é uma das formas de selecionar o nome e a nota na tabela de notas, representados pelo SELECT e FROM. De forma ordenada do menor para maior, ou seja, crescente representado pelo ORDER BY, no limite das 100 primeiros, LIMIT.

Para expandir os seus conhecimentos, recomendo a leitura dos artigos abaixo que abordam com mais detalhes:

Espero ter ajudado. Qualquer dúvida, compartilhe conosco para podermos te ajudar.

Bons estudos, Santo!

Essa query vai ordenar por ordem crescente de nota e só se houverem duas ou mais notas idênticas, ela vai colocar os nomes dessa mesma nota em ordem alfabética, não a de todos os 100. Isso não me parece o que foi pedido no exercício, que era obter o resultado em ordem alfabética... mas, enfim, talvez seja o caso de rever o enunciado. (Obs: testei o exercício na prática no Postgresql) Obrigado.

Fiquei com a mesma dúvida do Santo. Essa query não vai trazer em ordem alfabética e sim em ordem de nota. Acho que vale a pena mudar o enunciado da pergunta para pedir para retornar a classificação por nota e, caso mais de um aluno tenha a mesma nota, ordenar por nome.