Įrašų rūšiavimas naudojant SQL užklausą Python

Norėdami rūšiuoti rezultato eilutes, turite naudoti komandą ORDER BY.

Pavyzdys

Pasirinkime iš mūsų lentelės users visus vartotojus ir surūšiuokime juos pagal amžių nuo mažiausio iki didžiausio:

pythonquery = "SELECT * FROM users ORDER BY age"

Vykdyto kodo rezultatas:

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}

Pavyzdys

Pakeiskime rūšiavimo tvarką naudodami komandą DESC:

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

Vykdyto kodo rezultatas:

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}

Pavyzdys

Pasirinkime visus vartotojus, kurių atlyginimas 500, ir surūšiuokime juos pagal amžių nuo mažiausio iki didžiausio:

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

Vykdyto kodo rezultatas:

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}

Pavyzdys

Galima rūšiuoti ne pagal vieną lauką, o pagal kelis. Pavyzdžiui, pasirinkime visus vartotojus ir surūšiuokime juos pirma pagal amžių didėjimo tvarka, o vartotojus, kurių amžius vienodas, surūšiuokime pagal atlyginimą didėjimo tvarka:

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

Vykdyto kodo rezultatas:

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}

Pavyzdys

Komandą ORDER BY galima derinti su LIMIT . Tokiu atveju pirma reikia rašyti rūšiavimo komandą, o po to - limitą. Šiame pavyzdyje pirma surūšiuosime įrašus pagal amžių didėjimo tvarka, o po to paimsime pirmuosius 3 įrašus:

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

Vykdyto kodo rezultatas:

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}

Praktinės užduotys

Задание 1

Paimkite visus vartotojus ir surūšiuokite juos pagal atlyginimą didėjimo tvarka.

Задание 2

Paimkite visus vartotojus ir surūšiuokite juos pagal atlyginimą mažėjimo tvarka.

Задание 3

Paimkite visus vartotojus ir surūšiuokite juos pagal vardą.

Задание 4

Paimkite vartotojus, kurių atlyginimas 500, ir surūšiuokite juos pagal amžių.

Задание 5

Paimkite visus vartotojus ir surūšiuokite juos pagal vardą ir pagal atlyginimą.

Задание 6

Surūšiuokite vartotojus pagal atlyginimą didėjimo tvarka ir gaukite pirmus 3 darbuotojus iš rūšiavimo rezultato.

Задание 7

Surūšiuokite vartotojus pagal atlyginimą mažėjimo tvarka ir gaukite pirmus 3 vartotojus iš rūšiavimo rezultato.