Tiempo de lectura:2 Minutos, 34 Segundos

En este articulo vamos aprender a evitar duplicados usando DISTINCT en PostgreSQL. Esta cláusula se utiliza en la instrucción SELECT para eliminar filas duplicadas de un conjunto de resultados. DISTINCT se queda con un sola fila de cada grupo y es posible aplicarlo a una o mas columnas indicadas en el SELECT.

Sintaxis de DISTINCT

La sintaxis básica es:

En la primera sentencia evalúa los datos de la columna 1 para evitar duplicados mientras que en la segunda evalúa los duplicados en base a la combinación de valores de las dos columnas.

Sintaxis de DISTINCT ON

Si tienes varias columnas en la instrucción SELECT y no quieres aplicar el DISTINCT a todas las columnas puedes usar la cláusula DISTINCT ON. Su sintaxis es la siguiente:

Ejemplos

Usaremos la siguiente tabla llamada empleados para realizar los ejemplos (al final de la página esta disponible el script para crearla)

Mostrar los diferentes puestos

Para mostrar los valores diferentes de un campo y así evitar duplicados escribe después del SELECT la palabra DISTINCT seguida del nombre de uno o varios campos:

Evitar duplicados de una sola columna

Puedes aplicar DISTINCT a una sola columna usando DISTINCT ON. La consulta te devolverá la primera fila de cada grupo, por ello es muy recomendable usarlo junto a la cláusula ORDER BY para obtener un buen resultado.

En el siguiente ejemplo obtenemos los diferentes puestos y nos quedamos con el primer nombre que encuentre de cada puesto gracias a que hemos indicado que ordene alfabéticamente por nombre ascendente:

En el siguiente ejemplo obtenemos los diferentes puestos y nos quedamos con el último nombre que encuentre de cada puesto gracias a que hemos indicado que ordene alfabéticamente por nombre descendente:

Ejemplo completo

Copia y pega el siguiente código en tu consola de PostgreSQL y realiza paso a paso leyendo los comentarios.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Este sitio está protegido por reCAPTCHA y se aplican la política de privacidad y los términos de servicio de Google.

Perfiles en Redes Sociales