Sortarea înregistrărilor prin interogare SQL în Python
Pentru a sorta rândurile rezultatului,
trebuie să folosiți comanda ORDER
BY.
Exemplu
Să selectăm din tabela noastră users toți
utilizatorii și să-i sortăm după vârstă de la
cel mai mic la cel mai mare:
query = "SELECT * FROM users ORDER BY age"
Rezultatul codului executat:
{'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}
Exemplu
Să schimbăm ordinea de sortare folosind
comanda DESC:
query = "SELECT * FROM users ORDER BY age DESC"
Rezultatul codului executat:
{'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}
Exemplu
Să selectăm toți utilizatorii cu salariul 500
și să-i sortăm după vârstă de la cel mai mic
la cel mai mare:
query = "SELECT * FROM users WHERE salary=500 ORDER BY age"
Rezultatul codului executat:
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Exemplu
Puteți sorta nu după un câmp, ci după mai multe. Să selectăm pentru exemplu toți utilizatorii și să-i sortăm mai întâi după vârstă în ordine crescătoare, iar utilizatorii cu vârste identice să-i sortăm după salariu în ordine crescătoare:
query = "SELECT * FROM users ORDER BY age, salary"
Rezultatul codului executat:
{'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}
Exemplu
Comanda ORDER BY poate fi combinată
cu LIMIT. În acest caz, trebuie mai întâi
să scrieți comanda de sortare, iar apoi - limita.
În următorul exemplu, mai întâi vom sorta
înregistrările după vârstă în ordine crescătoare, apoi
vom lua primele 3 elemente:
query = "SELECT * FROM users ORDER BY age LIMIT 3"
Rezultatul codului executat:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
Sarcini practice
Extrageți toți utilizatorii și sortați-i după salariu în ordine crescătoare.
Extrageți toți utilizatorii și sortați-i după salariu în ordine descrescătoare.
Extrageți toți utilizatorii și sortați-i după nume.
Extrageți utilizatorii cu salariul 500 și
sortați-i după vârstă.
Extrageți toți utilizatorii și sortați-i după nume și după salariu.
Sortați utilizatorii după salariu în ordine crescătoare
și obțineți primii 3 angajați din
rezultatul sortării.
Sortați utilizatorii după salariu în ordine descrescătoare
și obțineți primii 3 utilizatori din
rezultatul sortării.