Sorteren van records via SQL query in Python
Om de rijen van het resultaat te sorteren,
moet je de opdracht ORDER
BY gebruiken.
Voorbeeld
Laten we alle gebruikers uit onze tabel users selecteren
en ze sorteren op leeftijd van
klein naar groot:
query = "SELECT * FROM users ORDER BY age"
Resultaat van de uitgevoerde code:
{'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}
Voorbeeld
Laten we de sorteervolgorde veranderen met behulp van
de opdracht DESC:
query = "SELECT * FROM users ORDER BY age DESC"
Resultaat van de uitgevoerde code:
{'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}
Voorbeeld
Laten we alle gebruikers selecteren met een salaris van 500
en ze sorteren op leeftijd van klein
naar groot:
query = "SELECT * FROM users WHERE salary=500 ORDER BY age"
Resultaat van de uitgevoerde code:
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Voorbeeld
Je kunt sorteren op niet één veld, maar op meerdere. Laten we bijvoorbeeld alle gebruikers selecteren en ze eerst sorteren op leeftijd in oplopende volgorde, en gebruikers met dezelfde leeftijd sorteren op salaris in oplopende volgorde:
query = "SELECT * FROM users ORDER BY age, salary"
Resultaat van de uitgevoerde code:
{'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}
Voorbeeld
De opdracht ORDER BY kan gecombineerd worden
met LIMIT. Hierbij moet eerst
de sorteeropdracht worden geschreven, en daarna - de limiet.
In het volgende voorbeeld sorteren we eerst
de records op leeftijd in oplopende volgorde, en dan
nemen we de eerste 3 stuks:
query = "SELECT * FROM users ORDER BY age LIMIT 3"
Resultaat van de uitgevoerde code:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
Praktische opdrachten
Haal alle gebruikers op en sorteer ze op salaris in oplopende volgorde.
Haal alle gebruikers op en sorteer ze op salaris in aflopende volgorde.
Haal alle gebruikers op en sorteer ze op naam.
Haal gebruikers op met een salaris van 500 en
sorteer ze op leeftijd.
Haal alle gebruikers op en sorteer ze op naam en op salaris.
Sorteer de gebruikers op salaris in oplopende volgorde
en krijg de eerste 3 werknemers uit
het sorteeresultaat.
Sorteer de gebruikers op salaris in aflopende volgorde
en krijg de eerste 3 gebruikers uit
het sorteeresultaat.