Saltar al contenido principal
Documentos
Funciones de cadenaDesencadenaBases de datosFunciones JSONFunciones matemáticasFunciones de fechaÍndicesSintaxis básicaGestión de Tablas y Esquemas

PostgreSQL ORDENAR POR

La cláusula `ORDER BY` de PostgreSQL se utiliza para ordenar el conjunto de resultados de una consulta por una o varias columnas. Puede ordenar los datos en orden ascendente (por defecto) o descendente para que el análisis y la visualización de los datos sean más intuitivos.

Utilización

La cláusula `ORDENAR POR` se emplea cuando necesitas organizar los resultados de la consulta en un orden concreto. Esta cláusula sigue a la sentencia `SELECT` y puede combinarse con otras cláusulas como `WHERE` y `GROUP BY`.


SELECT column1, column2, ...
FROM table_name
[WHERE condition]
ORDER BY column1 [ASC|DESC], column2 [ASC|DESC], ...;

En esta sintaxis, `ORDER BY columna1 [ASC|DESC]` especifica la columna utilizada para la ordenación y el orden de ésta, que puede ser ascendente (`ASC`) o descendente (`DESC`).

Ejemplos

1. Pedidos básicos


SELECT name, age
FROM users
ORDER BY age;

Este ejemplo ordena la tabla "usuarios" por la columna "edad" en orden ascendente, que es el predeterminado.

2. Orden descendente


SELECT product_name, price
FROM products
ORDER BY price DESC;

Aquí, la tabla `productos` se ordena por la columna `precio` en orden descendente, mostrando primero los productos más caros.

3. Ordenación por columnas múltiples


SELECT employee_id, department, salary
FROM employees
ORDER BY department ASC, salary DESC;

Este ejemplo ordena la tabla `empleados` primero por `departamento` en orden ascendente y luego por `salario` dentro de cada departamento en orden descendente.

Consejos y buenas prácticas

  • Especifica reglas de ordenación claras. Utiliza `ASC` o `DESC` para definir explícitamente el orden de clasificación de cada columna.
  • Utiliza las columnas múltiples con prudencia. Cuando ordenes por varias columnas, asegúrate de que la secuencia tiene un sentido lógico para tu análisis.
  • Optimiza el rendimiento. Considera la posibilidad de indexar las columnas utilizadas en `ORDENAR POR` para mejorar el rendimiento de la consulta, especialmente con conjuntos de datos grandes.
  • Combinar con `LIMIT`. Utiliza `ORDENAR POR` junto con `LÍMITE` para obtener de forma eficaz los registros superiores o inferiores.
  • Maneja adecuadamente los valores `NULL`. Por defecto, los valores `NULL` se ordenan como si fueran superiores a los valores no `NULL` en orden ascendente e inferiores en orden descendente. Utiliza `NULLS FIRST` o `NULLS LAST` para especificar explícitamente la posición de los valores `NULL`.
  • Consideraciones sobre el rendimiento. Cuando utilices "ORDENAR POR" con grandes conjuntos de datos, ten en cuenta que la ordenación puede consumir muchos recursos. Indexar las columnas que intervienen en la ordenación puede mejorar significativamente el rendimiento.