Kirjete sorteerimine SQL-päringu abil Pythonis
Rea tulemuse sorteerimiseks
peate kasutama käsku ORDER
BY.
Näide
Valime oma tabelist users kõik
kasutajad ja sorteerime need vanuse järgi
väiksemast suuremani:
query = "SELECT * FROM users ORDER BY age"
Käivitatud koodi tulemus:
{'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}
Näide
Muudame sorteerimise järjekorda kasutades
käsku DESC:
query = "SELECT * FROM users ORDER BY age DESC"
Käivitatud koodi tulemus:
{'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}
Näide
Valime kõik kasutajad, kelle palk on 500
ja sorteerime need vanuse järgi väiksemast
suuremani:
query = "SELECT * FROM users WHERE salary=500 ORDER BY age"
Käivitatud koodi tulemus:
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Näide
Võite sorteerida mitte ühe, vaid mitme välja järgi. Näitena valime kõik kasutajad ja sorteerime need esmalt vanuse kasvamise järjekorras, ning kasutajad samade vanustega sorteerime palga kasvamise järjekorras:
query = "SELECT * FROM users ORDER BY age, salary"
Käivitatud koodi tulemus:
{'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}
Näide
Käsku ORDER BY saab kombineerida
käsuga LIMIT. Sel juhul tuleb esmalt
kirjutada sorteerimiskäsk ja seejärel - limiit.
Järgmises näites sorteerime esmalt
kirjed vanuse kasvamise järjekorras ja seejärel
võtame esimesed 3 tükki:
query = "SELECT * FROM users ORDER BY age LIMIT 3"
Käivitatud koodi tulemus:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
Praktilised ülesanded
Hankige kõik kasutajad ja sorteerige need palga kasvamise järjekorras.
Hankige kõik kasutajad ja sorteerige need palga kahaneva järjekorras.
Hankige kõik kasutajad ja sorteerige need nime järgi.
Hankige kasutajad, kelle palk on 500 ja
sorteerige need vanuse järgi.
Hankige kõik kasutajad ja sorteerige need nime ja palga järgi.
Sorteerige kasutajad palga kasvamise järjekorras
ja hankige sorteerimistulemusest esimesed 3 töötajat.
Sorteerige kasutajad palga kahaneva järjekorras
ja hankige sorteerimistulemusest esimesed 3 kasutajat.