Ordenação de registros através de consulta SQL em Python

Para ordenar as linhas do resultado, é necessário utilizar o comando ORDER BY.

Exemplo

Vamos selecionar de nossa tabela users todos os usuários e ordená-los por idade do menor para o maior:

pythonquery = "SELECT * FROM users ORDER BY age"

Resultado do código executado:

python{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
{'id': 6, 'name': 'user6', 'age': 28, 'salary': 900}
{'id': 4, 'name': 'user4', 'age': 30, 'salary': 900}

Exemplo

Vamos alterar a ordem de classificação usando o comando DESC:

pythonquery = "SELECT * FROM users ORDER BY age DESC"

Resultado do código executado:

python{'id': 4, 'name': 'user4', 'age': 30, 'salary': 900}
{'id': 6, 'name': 'user6', 'age': 28, 'salary': 900}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}

Exemplo

Vamos selecionar todos os usuários com salário 500 e ordená-los por idade do menor para o maior:

pythonquery = "SELECT * FROM users WHERE salary=500 ORDER BY age"

Resultado do código executado:

python{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}

Exemplo

É possível ordenar não por um campo, mas por vários. Vamos, por exemplo, selecionar todos os usuários e ordená-los primeiro por idade em ordem crescente, e os usuários com as mesmas idades serão ordenados por salário em ordem crescente:

pythonquery = "SELECT * FROM users ORDER BY age, salary"

Resultado do código executado:

python{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
{'id': 6, 'name': 'user6', 'age': 28, 'salary': 900}
{'id': 4, 'name': 'user4', 'age': 30, 'salary': 900}

Exemplo

O comando ORDER BY pode ser combinado com LIMIT. Neste caso, é necessário escrever primeiro o comando de ordenação, e depois - o limite. No próximo exemplo, primeiro vamos ordenar os registros por idade em ordem crescente, e depois pegar as primeiras 3 unidades:

pythonquery = "SELECT * FROM users ORDER BY age LIMIT 3"

Resultado do código executado:

python{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}

Tarefas práticas

Задание 1

Selecione todos os usuários e ordene-os por salário em ordem crescente.

Задание 2

Selecione todos os usuários e ordene-os por salário em ordem decrescente.

Задание 3

Selecione todos os usuários e ordene-os por nome.

Задание 4

Selecione os usuários com salário 500 e ordene-os por idade.

Задание 5

Selecione todos os usuários e ordene-os por nome e por salário.

Задание 6

Ordene os usuários por salário em ordem crescente e obtenha os primeiros 3 funcionários do resultado da ordenação.

Задание 7

Ordene os usuários por salário em ordem decrescente e obtenha os primeiros 3 usuários do resultado da ordenação.