Triedenie záznamov pomocou SQL dopytu v Pythone
Ak chcete zoradiť riadky výsledku,
musíte použiť príkaz ORDER
BY.
Príklad
Vyberme z našej tabuľky users všetkých
používateľov a zoraďme ich podľa veku od
menšieho k väčšiemu:
query = "SELECT * FROM users ORDER BY age"
Výsledok vykonaného kódu:
{'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}
Príklad
Zmeňme poradie triedenia pomocou
príkazu DESC:
query = "SELECT * FROM users ORDER BY age DESC"
Výsledok vykonaného kódu:
{'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}
Príklad
Vyberme všetkých používateľov so mzdou 500
a zoraďme ich podľa veku od menšieho
k väčšiemu:
query = "SELECT * FROM users WHERE salary=500 ORDER BY age"
Výsledok vykonaného kódu:
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Príklad
Môžete triediť nie podľa jedného poľa, ale podľa niekoľkých. Na príklad vyberme všetkých používateľov a zoraďme ich najprv podľa vzostupného veku, a používateľov s rovnakým vekom zoraďme podľa vzostupnej mzdy:
query = "SELECT * FROM users ORDER BY age, salary"
Výsledok vykonaného kódu:
{'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}
Príklad
Príkaz ORDER BY možno kombinovať
s LIMIT . Pri tom je potrebné
najprv napísať príkaz na triedenie, a potom - limit.
V nasledujúcom príklade najprv zoradíme
záznamy podľa vzostupného veku, a potom
vezmeme prvých 3 kusy:
query = "SELECT * FROM users ORDER BY age LIMIT 3"
Výsledok vykonaného kódu:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
Praktické úlohy
Získajte všetkých používateľov a zoraďte ich podľa vzostupnej mzdy.
Získajte všetkých používateľov a zoraďte ich podľa zostupnej mzdy.
Získajte všetkých používateľov a zoraďte ich podľa mena.
Získajte používateľov so mzdou 500 a
zoraďte ich podľa veku.
Získajte všetkých používateľov a zoraďte ich podľa mena a podľa mzdy.
Zoraďte používateľov podľa vzostupnej mzdy
a získajte prvých 3 pracovníkov z
výsledku triedenia.
Zoraďte používateľov podľa zostupnej mzdy
a získajte prvých 3 používateľov z
výsledku triedenia.