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:
query = "SELECT * FROM users ORDER BY age"
Rezultat izvršenog koda:
{'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:
query = "SELECT * FROM users ORDER BY age DESC"
Rezultat izvršenog koda:
{'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:
query = "SELECT * FROM users WHERE salary=500 ORDER BY age"
Rezultat izvršenog koda:
{'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:
query = "SELECT * FROM users ORDER BY age, salary"
Rezultat izvršenog koda:
{'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:
query = "SELECT * FROM users ORDER BY age LIMIT 3"
Rezultat izvršenog koda:
{'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
Izvucite sve korisnike i sortirajte ih po rastućoj plati.
Izvucite sve korisnike i sortirajte ih po opadajućoj plati.
Izvucite sve korisnike i sortirajte ih po imenu.
Izvucite korisnike sa platom 500 i
sortirajte ih po godinama.
Izvucite sve korisnike i sortirajte ih po imenu i po plati.
Sortirajte korisnike po rastućoj plati
i dobijte prva 3 radnika iz
rezultata sortiranja.
Sortirajte korisnike po opadajućoj plati
i dobijte prva 3 korisnika iz
rezultata sortiranja.