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