Сортирање записа преко 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 корисника из
резултата сортирања.