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:

pythonquery = "SELECT * FROM users ORDER BY age"

Výsledok vykonaného kódu:

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}

Príklad

Zmeňme poradie triedenia pomocou príkazu DESC:

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

Výsledok vykonaného kódu:

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}

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:

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

Výsledok vykonaného kódu:

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}

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:

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

Výsledok vykonaného kódu:

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}

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:

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

Výsledok vykonaného kódu:

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}

Praktické úlohy

Задание 1

Získajte všetkých používateľov a zoraďte ich podľa vzostupnej mzdy.

Задание 2

Získajte všetkých používateľov a zoraďte ich podľa zostupnej mzdy.

Задание 3

Získajte všetkých používateľov a zoraďte ich podľa mena.

Задание 4

Získajte používateľov so mzdou 500 a zoraďte ich podľa veku.

Задание 5

Získajte všetkých používateľov a zoraďte ich podľa mena a podľa mzdy.

Задание 6

Zoraďte používateľov podľa vzostupnej mzdy a získajte prvých 3 pracovníkov z výsledku triedenia.

Задание 7

Zoraďte používateľov podľa zostupnej mzdy a získajte prvých 3 používateľov z výsledku triedenia.