Řazení záznamů pomocí SQL dotazu v Pythonu

Chcete-li seřadit řádky výsledku, je třeba použít příkaz ORDER BY.

Příklad

Vyberme z naší tabulky users všechny uživatele a seřaďme je podle věku od nejmenšího k největšímu:

pythonquery = "SELECT * FROM users ORDER BY age"

Výsledek provedené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}

Příklad

Změníme pořadí řazení pomocí příkazu DESC:

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

Výsledek provedené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}

Příklad

Vyberme všechny uživatele se mzdou 500 a seřaďme je podle věku od nejmenšího k největšímu:

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

Výsledek provedené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}

Příklad

Můžete řadit ne podle jednoho pole, ale podle několika. Pojďme pro příklad vybrat všechny uživatele a seřadit je nejprve podle vzestupného věku, a uživatele se stejnými věky seřadit podle vzestupné mzdy:

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

Výsledek provedené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}

Příklad

Příkaz ORDER BY lze kombinovat s LIMIT . Přitom je třeba nejprve psát příkaz řazení, a poté - limit. V následujícím příkladu nejprve seřadíme záznamy podle vzestupného věku, a poté vezmeme první 3 kusy:

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

Výsledek provedené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ískejte všechny uživatele a seřaďte je podle vzestupné mzdy.

Задание 2

Získejte všechny uživatele a seřaďte je podle sestupné mzdy.

Задание 3

Získejte všechny uživatele a seřaďte je podle jména.

Задание 4

Získejte uživatele se mzdou 500 a seřaďte je podle věku.

Задание 5

Získejte všechny uživatele a seřaďte je podle jména a podle mzdy.

Задание 6

Seřaďte uživatele podle vzestupné mzdy a získejte první 3 pracovníky z výsledku řazení.

Задание 7

Seřaďte uživatele podle sestupné mzdy a získejte první 3 uživatele z výsledku řazení.