Sortering av poster via SQL-spørring i Python
For å sortere radene i resultatet,
må du bruke kommandoen ORDER
BY.
Eksempel
La oss velge alle brukerne fra
vår tabell users og
sortere dem etter alder fra
mindre til større:
query = "SELECT * FROM users ORDER BY age"
Resultatet av utført kode:
{'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}
Eksempel
La oss endre sorteringsrekkefølgen ved hjelp av
kommandoen DESC:
query = "SELECT * FROM users ORDER BY age DESC"
Resultatet av utført kode:
{'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}
Eksempel
La oss velge alle brukere med lønn 500
og sortere dem etter alder fra mindre
til større:
query = "SELECT * FROM users WHERE salary=500 ORDER BY age"
Resultatet av utført kode:
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Eksempel
Du kan sortere ikke etter ett felt, men etter flere. La oss for eksempel velge alle brukerne og sortere dem først etter stigende alder, og brukere med samme alder sortere etter stigende lønn:
query = "SELECT * FROM users ORDER BY age, salary"
Resultatet av utført kode:
{'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}
Eksempel
Kommandoen ORDER BY kan kombineres
med LIMIT . Samtidig må du
skrive sorteringskommandoen først, og deretter - grensen.
I følgende eksempel sorterer vi først
postene etter stigende alder, og deretter
tar vi de første 3 stykkene:
query = "SELECT * FROM users ORDER BY age LIMIT 3"
Resultatet av utført kode:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
Praktiske oppgaver
Hent alle brukerne og sorter dem etter stigende lønn.
Hent alle brukerne og sorter dem etter synkende lønn.
Hent alle brukerne og sorter dem etter navn.
Hent brukere med lønn 500 og
sorter dem etter alder.
Hent alle brukerne og sorter dem etter navn og etter lønn.
Sorter brukerne etter stigende lønn
og få de første 3 arbeidstakerne fra
sorteringsresultatet.
Sorter brukerne etter synkende lønn
og få de første 3 brukerne fra
sorteringsresultatet.