Сортиране на записи чрез SQL заявка в Python

За да сортирате редовете от резултата, трябва да използвате командата ORDER BY.

Пример

Нека изберем от нашата таблица users всички потребители и ги сортираме по възраст от най-малката към най-голямата:

pythonquery = "SELECT * FROM users ORDER BY age"

Резултат от изпълнения код:

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}

Пример

Нека променим реда на сортиране с помощта на командата DESC:

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

Резултат от изпълнения код:

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}

Пример

Нека изберем всички потребители със заплата 500 и ги сортираме по възраст от най-малката към най-голямата:

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

Резултат от изпълнения код:

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}

Пример

Можете да сортирате не по едно поле, а по няколко. Нека за пример изберем всички потребители и ги сортираме първо по възраст във възходящ ред, а потребителите с еднаква възраст да ги сортираме по заплата във възходящ ред:

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

Резултат от изпълнения код:

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}

Пример

Командата ORDER BY може да се комбинира с LIMIT. При това първо трябва да пишете командата за сортиране, а след това - лимита. В следващия пример първо ще сортираме записите по възраст във възходящ ред, а след това ще вземем първите 3 броя:

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

Резултат от изпълнения код:

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}

Практически задачи

Задание 1

Извлечете всички потребители и ги сортирайте по заплата във възходящ ред.

Задание 2

Извлечете всички потребители и ги сортирайте по заплата в низходящ ред.

Задание 3

Извлечете всички потребители и ги сортирайте по име.

Задание 4

Извлечете потребители със заплата 500 и ги сортирайте по възраст.

Задание 5

Извлечете всички потребители и ги сортирайте по име и по заплата.

Задание 6

Сортирайте потребителите по заплата във възходящ ред и получете първите 3 работника от резултата от сортирането.

Задание 7

Сортирайте потребителите по заплата в низходящ ред и получете първите 3 потребителя от резултата от сортирането.