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:

pythonquery = "SELECT * FROM users ORDER BY age"

Ergebnis des ausgeführten Codes:

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}

Beispiel

Ändern wir die Sortierreihenfolge mit dem Befehl DESC:

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

Ergebnis des ausgeführten Codes:

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}

Beispiel

Wählen wir alle Benutzer mit einem Gehalt von 500 aus und sortieren sie nach Alter aufsteigend:

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

Ergebnis des ausgeführten Codes:

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}

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:

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

Ergebnis des ausgeführten Codes:

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}

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:

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

Ergebnis des ausgeführten Codes:

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}

Praktische Aufgaben

Задание 1

Holen Sie alle Benutzer ab und sortieren Sie sie nach Gehalt aufsteigend.

Задание 2

Holen Sie alle Benutzer ab und sortieren Sie sie nach Gehalt absteigend.

Задание 3

Holen Sie alle Benutzer ab und sortieren Sie sie nach Namen.

Задание 4

Holen Sie Benutzer mit einem Gehalt von 500 ab und sortieren Sie sie nach Alter.

Задание 5

Holen Sie alle Benutzer ab und sortieren Sie sie nach Namen und nach Gehalt.

Задание 6

Sortieren Sie die Benutzer nach Gehalt aufsteigend und erhalten Sie die ersten 3 Mitarbeiter aus dem Sortierergebnis.

Задание 7

Sortieren Sie die Benutzer nach Gehalt absteigend und erhalten Sie die ersten 3 Benutzer aus dem Sortierergebnis.