Sortieren von Datensätzen per SQL-Abfrage in Python
Um die Zeilen des Ergebnisses zu sortieren,
muss der Befehl ORDER
BY verwendet werden.
Beispiel
Wählen wir alle Benutzer aus unserer Tabelle users aus
und sortieren sie nach Alter aufsteigend:
query = "SELECT * FROM users ORDER BY age"
Ergebnis des ausgeführten Codes:
{'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}
Beispiel
Ändern wir die Sortierreihenfolge mit dem
Befehl DESC:
query = "SELECT * FROM users ORDER BY age DESC"
Ergebnis des ausgeführten Codes:
{'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}
Beispiel
Wählen wir alle Benutzer mit einem Gehalt von 500
aus und sortieren sie nach Alter aufsteigend:
query = "SELECT * FROM users WHERE salary=500 ORDER BY age"
Ergebnis des ausgeführten Codes:
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Beispiel
Man kann nicht nur nach einem Feld, sondern nach mehreren sortieren. Lassen Sie uns als Beispiel alle Benutzer auswählen und sie zuerst nach Alter aufsteigend sortieren, und Benutzer mit dem gleichen Alter nach Gehalt aufsteigend sortieren:
query = "SELECT * FROM users ORDER BY age, salary"
Ergebnis des ausgeführten Codes:
{'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}
Beispiel
Der Befehl ORDER BY kann mit
LIMIT kombiniert werden.
Dabei muss zuerst der Sortierbefehl und dann - das Limit stehen.
Im folgenden Beispiel sortieren wir zuerst die
Datensätze nach Alter aufsteigend und nehmen dann
die ersten 3 Stück:
query = "SELECT * FROM users ORDER BY age LIMIT 3"
Ergebnis des ausgeführten Codes:
{'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 Aufgaben
Holen Sie alle Benutzer ab und sortieren Sie sie nach Gehalt aufsteigend.
Holen Sie alle Benutzer ab und sortieren Sie sie nach Gehalt absteigend.
Holen Sie alle Benutzer ab und sortieren Sie sie nach Namen.
Holen Sie Benutzer mit einem Gehalt von 500 ab und
sortieren Sie sie nach Alter.
Holen Sie alle Benutzer ab und sortieren Sie sie nach Namen und nach Gehalt.
Sortieren Sie die Benutzer nach Gehalt aufsteigend
und erhalten Sie die ersten 3 Mitarbeiter aus
dem Sortierergebnis.
Sortieren Sie die Benutzer nach Gehalt absteigend
und erhalten Sie die ersten 3 Benutzer aus
dem Sortierergebnis.