Sortiranje zapisa putem SQL upita u Pythonu

Da biste sortirali redove rezultata, potrebno je da koristite komandu ORDER BY.

Primer

Selektujmo iz naše tabele users sve korisnike i sortirajmo ih po godinama od manjeg ka većem:

pythonquery = "SELECT * FROM users ORDER BY age"

Rezultat izvršenog koda:

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}

Primer

Promenimo redosled sortiranja pomoću komande DESC:

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

Rezultat izvršenog koda:

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}

Primer

Selektujmo sve korisnike sa platom 500 i sortirajmo ih po godinama od manjeg ka većem:

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

Rezultat izvršenog koda:

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}

Primer

Možete sortirati ne po jednom polju, već po nekoliko. Hajde da za primer selektujemo sve korisnike i sortiramo ih prvo po rastućim godinama, a korisnike sa istim godinama sortiramo po rastućoj plati:

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

Rezultat izvršenog koda:

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}

Primer

Komandu ORDER BY možete kombinovati sa LIMIT . Pritom prvo treba da napišete komandu za sortiranje, a onda - limit. U sledećem primeru prvo ćemo sortirati zapise po rastućim godinama, a onda uzeti prve 3 komada:

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

Rezultat izvršenog koda:

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}

Praktični zadaci

Задание 1

Izvucite sve korisnike i sortirajte ih po rastućoj plati.

Задание 2

Izvucite sve korisnike i sortirajte ih po opadajućoj plati.

Задание 3

Izvucite sve korisnike i sortirajte ih po imenu.

Задание 4

Izvucite korisnike sa platom 500 i sortirajte ih po godinama.

Задание 5

Izvucite sve korisnike i sortirajte ih po imenu i po plati.

Задание 6

Sortirajte korisnike po rastućoj plati i dobijte prva 3 radnika iz rezultata sortiranja.

Задание 7

Sortirajte korisnike po opadajućoj plati i dobijte prva 3 korisnika iz rezultata sortiranja.