Ordenación de registros mediante consulta SQL en Python

Para ordenar las filas del resultado, es necesario utilizar el comando ORDER BY.

Ejemplo

Seleccionemos de nuestra tabla users todos los usuarios y ordenémoslos por edad de menor a mayor:

pythonquery = "SELECT * FROM users ORDER BY age"

Resultado del código ejecutado:

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}

Ejemplo

Cambiemos el orden de clasificación usando el comando DESC:

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

Resultado del código ejecutado:

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}

Ejemplo

Seleccionemos todos los usuarios con salario 500 y ordenémoslos por edad de menor a mayor:

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

Resultado del código ejecutado:

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}

Ejemplo

Se puede ordenar no por un campo, sino por varios. Como ejemplo, seleccionemos todos los usuarios y ordenémoslos primero por edad ascendente, y a los usuarios con la misma edad los ordenaremos por salario ascendente:

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

Resultado del código ejecutado:

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}

Ejemplo

El comando ORDER BY se puede combinar con LIMIT. En este caso, primero se debe escribir el comando de ordenación, y luego - el límite. En el siguiente ejemplo, primero ordenaremos los registros por edad ascendente, y luego tomaremos las primeras 3 unidades:

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

Resultado del código ejecutado:

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}

Tareas prácticas

Задание 1

Obtenga todos los usuarios y ordénelos por salario ascendente.

Задание 2

Obtenga todos los usuarios y ordénelos por salario descendente.

Задание 3

Obtenga todos los usuarios y ordénelos por nombre.

Задание 4

Obtenga los usuarios con salario 500 y ordénelos por edad.

Задание 5

Obtenga todos los usuarios y ordénelos por nombre y por salario.

Задание 6

Ordene los usuarios por salario ascendente y obtenga los primeros 3 empleados del resultado de la ordenación.

Задание 7

Ordene los usuarios por salario descendente y obtenga los primeros 3 usuarios del resultado de la ordenación.