Сортирање на записи преку SQL барање во Python

За да ги сортирате редовите од резултатот, треба да ја користите командата ORDER BY.

Пример

Ќе ги избереме сите корисници од нашата табела users и ќе ги сортираме по возраст од помалиот кон поголемиот:

pythonquery = "SELECT * FROM users ORDER BY age"

Резултат од извршениот код:

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}

Пример

Ќе го промениме редоследот на сортирање со помош на командата DESC:

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

Резултат од извршениот код:

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}

Пример

Ќе ги избереме сите корисници со плата 500 и ќе ги сортираме по возраст од помалиот кон поголемиот:

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

Резултат од извршениот код:

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}

Пример

Може да сортирате не по едно поле, туку по неколку. Ајде за пример да ги избереме сите корисници и да ги сортираме прво по возраст во растечки редослед, а корисниците со исти возрасти да ги сортираме по плата во растечки редослед:

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

Резултат од извршениот код:

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}

Пример

Командата ORDER BY може да се комбинира со LIMIT. При тоа, прво треба да ја напишете командата за сортирање, а потоа - лимитот. Во следниот пример прво ќе ги сортираме записите по возраст во растечки редослед, а потоа ќе земеме првите 3 записи:

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

Резултат од извршениот код:

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}

Практични задачи

Задание 1

Земете ги сите корисници и сортирајте ги по плата во растечки редослед.

Задание 2

Земете ги сите корисници и сортирајте ги по плата во опаѓачки редослед.

Задание 3

Земете ги сите корисници и сортирајте ги по име.

Задание 4

Земете ги корисниците со плата 500 и сортирајте ги по возраст.

Задание 5

Земете ги сите корисници и сортирајте ги по име и по плата.

Задание 6

Сортирајте ги корисниците по плата во растечки редослед и земете ги првите 3 работници од резултатот на сортирањето.

Задание 7

Сортирајте ги корисниците по плата во опаѓачки редослед и земете ги првите 3 корисници од резултатот на сортирањето.