Ordinamento dei record tramite query SQL in Python
Per ordinare le righe del risultato,
è necessario utilizzare il comando ORDER
BY.
Esempio
Selezioniamo tutti gli utenti dalla nostra tabella users
e ordiniamoli per età dal minore
al maggiore:
query = "SELECT * FROM users ORDER BY age"
Risultato del codice eseguito:
{'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}
Esempio
Cambiamo l'ordine di ordinamento utilizzando
il comando DESC:
query = "SELECT * FROM users ORDER BY age DESC"
Risultato del codice eseguito:
{'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}
Esempio
Selezioniamo tutti gli utenti con uno stipendio di 500
e ordiniamoli per età dal minore
al maggiore:
query = "SELECT * FROM users WHERE salary=500 ORDER BY age"
Risultato del codice eseguito:
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Esempio
È possibile ordinare non per un campo, ma per più campi. Ad esempio, selezioniamo tutti gli utenti e ordiniamoli prima per età crescente, e gli utenti con la stessa età ordiniamoli per stipendio crescente:
query = "SELECT * FROM users ORDER BY age, salary"
Risultato del codice eseguito:
{'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}
Esempio
Il comando ORDER BY può essere combinato
con LIMIT. In questo caso, è necessario
prima scrivere il comando di ordinamento, e poi - il limite.
Nel seguente esempio, prima ordiniamo
i record per età crescente, e poi
prendiamo i primi 3:
query = "SELECT * FROM users ORDER BY age LIMIT 3"
Risultato del codice eseguito:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
Compiti pratici
Recuperate tutti gli utenti e ordinateli per stipendio crescente.
Recuperate tutti gli utenti e ordinateli per stipendio decrescente.
Recuperate tutti gli utenti e ordinateli per nome.
Recuperate gli utenti con uno stipendio di 500 e
ordinateli per età.
Recuperate tutti gli utenti e ordinateli per nome e per stipendio.
Ordinate gli utenti per stipendio crescente
e ottenete i primi 3 dipendenti dal
risultato dell'ordinamento.
Ordinate gli utenti per stipendio decrescente
e ottenete i primi 3 utenti dal
risultato dell'ordinamento.