Sortering av poster via SQL-förfrågan i Python

För att sortera raderna i resultatet, behöver du använda kommandot ORDER BY.

Exempel

Låt oss välja alla användare från vår tabell users och sortera dem efter ålder från mindre till större:

pythonquery = "SELECT * FROM users ORDER BY age"

Resultatet av den utförda koden:

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}

Exempel

Låt oss ändra sorteringsordningen med hjälp av kommandot DESC:

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

Resultatet av den utförda koden:

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}

Exempel

Låt oss välja alla användare med en lön på 500 och sortera dem efter ålder från mindre till större:

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

Resultatet av den utförda koden:

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}

Exempel

Du kan sortera efter inte ett fält, utan efter flera. Låt oss som exempel välja alla användare och sortera dem först efter stigande ålder, och användare med samma ålder sorterar vi efter stigande lön:

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

Resultatet av den utförda koden:

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}

Exempel

Kommandot ORDER BY kan kombineras med LIMIT. I så fall behöver du skriva sorteringskommandot först, och sedan - limit. I följande exempel sorterar vi först posterna efter stigande ålder, och sedan tar vi de första 3 styckena:

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

Resultatet av den utförda koden:

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}

Praktiska uppgifter

Задание 1

Hämta alla användare och sortera dem efter stigande lön.

Задание 2

Hämta alla användare och sortera dem efter fallande lön.

Задание 3

Hämta alla användare och sortera dem efter namn.

Задание 4

Hämta användare med en lön på 500 och sortera dem efter ålder.

Задание 5

Hämta alla användare och sortera dem efter namn och efter lön.

Задание 6

Sortera användare efter stigande lön och få de första 3 anställda från sorteringsresultatet.

Задание 7

Sortera användare efter fallande lön och få de första 3 användarna från sorteringsresultatet.