Сортиране на записи чрез SQL заявка в Python
За да сортирате редовете от резултата,
трябва да използвате командата ORDER
BY.
Пример
Нека изберем от нашата таблица users всички
потребители и ги сортираме по възраст от
най-малката към най-голямата:
query = "SELECT * FROM users ORDER BY age"
Резултат от изпълнения код:
{'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:
query = "SELECT * FROM users ORDER BY age DESC"
Резултат от изпълнения код:
{'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
и ги сортираме по възраст от най-малката
към най-голямата:
query = "SELECT * FROM users WHERE salary=500 ORDER BY age"
Резултат от изпълнения код:
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Пример
Можете да сортирате не по едно поле, а по няколко. Нека за пример изберем всички потребители и ги сортираме първо по възраст във възходящ ред, а потребителите с еднаква възраст да ги сортираме по заплата във възходящ ред:
query = "SELECT * FROM users ORDER BY age, salary"
Резултат от изпълнения код:
{'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 броя:
query = "SELECT * FROM users ORDER BY age LIMIT 3"
Резултат от изпълнения код:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
Практически задачи
Извлечете всички потребители и ги сортирайте по заплата във възходящ ред.
Извлечете всички потребители и ги сортирайте по заплата в низходящ ред.
Извлечете всички потребители и ги сортирайте по име.
Извлечете потребители със заплата 500 и
ги сортирайте по възраст.
Извлечете всички потребители и ги сортирайте по име и по заплата.
Сортирайте потребителите по заплата във възходящ ред
и получете първите 3 работника от
резултата от сортирането.
Сортирайте потребителите по заплата в низходящ ред
и получете първите 3 потребителя от
резултата от сортирането.