Rekordok rendezése SQL lekérdezéssel Pythonban
A sorok eredményének rendezéséhez
használja a ORDER
BY parancsot.
Példa
Válasszuk ki a users táblánkból az összes
felhasználót és rendezzük őket életkor szerint
növekvő sorrendben:
query = "SELECT * FROM users ORDER BY age"
A végrehajtott kód eredménye:
{'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}
Példa
Változtassuk meg a rendezés sorrendjét a
DESC paranccsal:
query = "SELECT * FROM users ORDER BY age DESC"
A végrehajtott kód eredménye:
{'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}
Példa
Válasszuk ki az összes 500 fizetésű
felhasználót és rendezzük őket életkor szerint
növekvő sorrendben:
query = "SELECT * FROM users WHERE salary=500 ORDER BY age"
A végrehajtott kód eredménye:
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Példa
Nem csak egy mező szerint lehet rendezni, hanem több szerint is. Példaként válasszuk ki az összes felhasználót és rendezzük őket először életkor szerint növekvő sorrendbe, majd az azonos életkorú felhasználókat rendezzük fizetés szerint növekvő sorrendbe:
query = "SELECT * FROM users ORDER BY age, salary"
A végrehajtott kód eredménye:
{'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}
Példa
A ORDER BY parancs kombinálható
a LIMIT paranccsal. Ebben az esetben először
a rendezési parancsot kell megadni, utána a limitet.
A következő példában először életkor szerint növekvő sorrendbe
rendezzük a rekordokat, majd kivesszük az első 3 darabot:
query = "SELECT * FROM users ORDER BY age LIMIT 3"
A végrehajtott kód eredménye:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
Gyakorlati feladatok
Kérje le az összes felhasználót és rendezze őket fizetés szerint növekvő sorrendbe.
Kérje le az összes felhasználót és rendezze őket fizetés szerint csökkenő sorrendbe.
Kérje le az összes felhasználót és rendezze őket név szerint.
Kérje le a 500 fizetésű felhasználókat és
rendezze őket életkor szerint.
Kérje le az összes felhasználót és rendezze őket név és fizetés szerint.
Rendezze a felhasználókat fizetés szerint növekvő sorrendbe
és a rendezés eredményéből vegye ki az első 3 dolgozót.
Rendezze a felhasználókat fizetés szerint csökkenő sorrendbe
és a rendezés eredményéből vegye ki az első 3 felhasználót.