PostgreSQL DISTINTO
La palabra clave `DISTINCT` en PostgreSQL se utiliza para devolver valores únicos de una columna o de una combinación de columnas, eliminando las entradas duplicadas. Suele utilizarse junto con la sentencia `SELECT` para garantizar que el conjunto de resultados sólo contiene registros distintos.
Utilización
La palabra clave `DISTINCT` se emplea cuando necesitas eliminar filas duplicadas de los resultados de tu consulta. Sigue a la palabra clave `SELECT` y se aplica a las columnas especificadas a continuación.
SELECT DISTINCT column1, column2, ...
FROM table_name;
En esta sintaxis, `DISTINCT` garantiza que la combinación de `columna1`, `columna2`, etc., es única en el conjunto de resultados.
Ejemplos
1. Valores Básicos Únicos
SELECT DISTINCT country
FROM customers;
Este ejemplo recupera una lista de países únicos de la tabla `clientes`, eliminando las entradas duplicadas. Ten en cuenta que los valores `NULL` se tratan como entradas distintas.
2. Combinaciones únicas
SELECT DISTINCT first_name, last_name
FROM employees;
En este caso, la consulta devuelve combinaciones únicas de "nombre" y "apellido" de la tabla "empleados".
3. Utilizar DISTINCT con ORDER BY
SELECT DISTINCT category
FROM products
ORDER BY category ASC;
Este ejemplo recupera distintas categorías de productos y las ordena alfabéticamente.
4. Utilización con DISTINCT ON
SELECT DISTINCT ON (column1) column1, column2
FROM table_name
ORDER BY column1, column2;
En PostgreSQL, `DISTINCT ON` te permite seleccionar filas distintas basándote en columnas concretas, lo que puede ser útil para escenarios más complejos.
Consejos y buenas prácticas
- Utilízalo con prudencia con grandes conjuntos de datos. `DISTINCT` puede consumir muchos recursos debido a las operaciones de ordenación y comparación que implica, así que utilízalo con criterio para evitar problemas de rendimiento.
- Combínalo con `ORDENAR POR`. Empareja `DISTINTO` con `ORDENAR POR` para ordenar los resultados únicos según sea necesario.
- Limita las columnas siempre que sea posible. Aplica `DISTINCT` al menor número de columnas para reducir la complejidad y el tiempo de ejecución.
- Comprueba la unicidad necesaria. Asegúrate de que el uso de `DISTINCT` es realmente necesario para tu consulta específica, para evitar sobrecargas innecesarias.