Ταξινόμηση εγγραφών μέσω SQL ερωτήματος στην Python
Για να ταξινομήσετε τις σειρές του αποτελέσματος,
πρέπει να χρησιμοποιήσετε την εντολή ORDER
BY.
Παράδειγμα
Ας επιλέξουμε από τον πίνακα users όλους
τους χρήστες και ας τους ταξινομήσουμε κατά ηλικία από
τη μικρότερη προς τη μεγαλύτερη:
query = "SELECT * FROM users ORDER BY age"
Αποτέλεσμα του εκτελεσμένου κώδικα:
{'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}
Παράδειγμα
Ας αλλάξουμε τη σειρά ταξινόμησης χρησιμοποιώντας
την εντολή DESC:
query = "SELECT * FROM users ORDER BY age DESC"
Αποτέλεσμα του εκτελεσμένου κώδικα:
{'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}
Παράδειγμα
Ας επιλέξουμε όλους τους χρήστες με μισθό 500
και ας τους ταξινομήσουμε κατά ηλικία από τη μικρότερη
προς τη μεγαλύτερη:
query = "SELECT * FROM users WHERE salary=500 ORDER BY age"
Αποτέλεσμα του εκτελεσμένου κώδικα:
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Παράδειγμα
Μπορείτε να ταξινομήσετε όχι μόνο κατά ένα πεδίο, αλλά κατά πολλά. Για παράδειγμα, ας επιλέξουμε όλους τους χρήστες και ας τους ταξινομήσουμε πρώτα κατά αύξουσα ηλικία, και τους χρήστες με την ίδια ηλικία ας τους ταξινομήσουμε κατά αύξον μισθό:
query = "SELECT * FROM users ORDER BY age, salary"
Αποτέλεσμα του εκτελεσμένου κώδικα:
{'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}
Παράδειγμα
Η εντολή ORDER BY μπορεί να συνδυαστεί
με την LIMIT . Σε αυτήν την περίπτωση πρέπει πρώτα
να γράψετε την εντολή ταξινόμησης, και μετά - το όριο.
Στο επόμενο παράδειγμα πρώτα θα ταξινομήσουμε
τις εγγραφές κατά αύξουσα ηλικία, και μετά
θα πάρουμε τις πρώτες 3:
query = "SELECT * FROM users ORDER BY age LIMIT 3"
Αποτέλεσμα του εκτελεσμένου κώδικα:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
Πρακτικές ασκήσεις
Ανακτήστε όλους τους χρήστες και ταξινομήστε τους κατά αύξον μισθό.
Ανακτήστε όλους τους χρήστες και ταξινομήστε τους κατά φθίνον μισθό.
Ανακτήστε όλους τους χρήστες και ταξινομήστε τους κατά όνομα.
Ανακτήστε χρήστες με μισθό 500 και
ταξινομήστε τους κατά ηλικία.
Ανακτήστε όλους τους χρήστες και ταξινομήστε τους κατά όνομα και κατά μισθό.
Ταξινομήστε τους χρήστες κατά αύξον μισθό
και λάβετε τους πρώτους 3 εργαζόμενους από
το αποτέλεσμα της ταξινόμησης.
Ταξινομήστε τους χρήστες κατά φθίνον μισθό
και λάβετε τους πρώτους 3 χρήστες από
το αποτέλεσμα της ταξινόμησης.