SQL

Tutorial SQL: Filtrado de valores únicos con DISTINCT

SQL distinct: eliminación de duplicados. Domina la eliminación de duplicados en SQL utilizando la cláusula DISTINCT con ejemplos prácticos.

DISTINCT es una palabra clave utilizada en SQL para eliminar registros duplicados de los resultados de una consulta. Es útil cuando se desean mostrar solo los valores únicos en un conjunto de datos, como en listados de clientes o productos.

Cómo funciona

Cuando se aplica DISTINCT a una consulta SELECT, SQL revisa los resultados y descarta cualquier fila duplicada. Una "fila duplicada" es una donde todos los campos son idénticos a los de otra fila. Por ejemplo, si se tiene una tabla con nombres de personas, y el nombre "Juan" aparece varias veces, una consulta SELECT DISTINCT sobre esa tabla solo mostrará "Juan" una vez.

Supongamos que tenemos la siguiente tabla llamada Personas:

ID Nombre Ciudad
1 Juan Madrid
2 Ana Sevilla
3 Juan Valencia
4 Ana Madrid
5 Pedro Barcelona
6 Ana Sevilla

Si ejecutamos la consulta SELECT Nombre FROM Personas;, obtendremos:

Nombre
Juan
Ana
Juan
Ana
Pedro
Ana

Podemos ver que el nombre "Ana" aparece tres veces y "Juan" dos veces. Para obtener una lista de nombres únicos, podemos usar DISTINCT.

SELECT DISTINCT Nombre FROM Personas;

El resultado será:

Nombre
Juan
Ana
Pedro

Esta lista muestra todos los nombres únicos de la tabla Personas, eliminando cualquier duplicado gracias al uso de SELECT DISTINCT.

Uso con múltiples campos

Se puede utilizar DISTINCT con más de un campo. En este caso, SQL considerará un duplicado a cualquier fila donde TODOS los campos sean idénticos.

Siguiendo con el ejemplo anterior, si quisiéramos obtener las combinaciones únicas de Nombre y Ciudad, podríamos hacer:

SELECT DISTINCT Nombre, Ciudad FROM Personas;

El resultado sería:

Nombre Ciudad
Juan Madrid
Ana Sevilla
Juan Valencia
Ana Madrid
Pedro Barcelona

Aunque "Juan" y "Ana" aparecen más de una vez, cada aparición es para una ciudad diferente, por lo que cada fila se considera única. Compárese con la tabla original, en la que la combinación "Ana - Sevilla" aparecía dos veces.

Consideraciones de rendimiento

DISTINCT puede afectar el rendimiento en grandes volúmenes de datos, ya que SQL necesita procesar todos los resultados para identificar y eliminar duplicados.

Manejo de campos NULL

Es importante recordar que en SQL, dos campos NULL se consideran distintos entre sí. Esto puede influir en los resultados al usar DISTINCT.

Alternativas y complementos

Si se necesita trabajar con duplicados basándose en columnas específicas, se pueden utilizar métodos como GROUP BY o funciones de ventana (ROW_NUMBER(), RANK(), DENSE_RANK(), etc.).

Conclusión

DISTINCT es una herramienta poderosa en SQL para eliminar duplicados y obtener conjuntos de datos únicos. Su comprensión y uso adecuado son cruciales para la eficiencia en la manipulación y análisis de datos.

Certifícate en SQL con CertiDevs PLUS

Ejercicios de esta lección Filtrado de valores únicos con DISTINCT

Evalúa tus conocimientos de esta lección Filtrado de valores únicos con DISTINCT con nuestros retos de programación de tipo Test, Puzzle, Código y Proyecto con VSCode, guiados por IA.

Actualización de datos: UPDATE

Código

Creación y uso de procedimientos almacenados

Test

Uso de funciones agregadas: COUNT, SUM, AVG, MAX, MIN

Test

Tipos de datos

Test

Uso de índices y particiones

Test

Uso de vistas

Test

Uso de INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN

Test

Sentencias INSERT

Código

Creación y uso de subqueries

Test

Uso de INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN

Código

Instalación de MySQL

Test

Relaciones entre tablas

Código

Clasificación de resultados con ORDER BY

Test

Creación y manejo de usuarios y roles

Test

Eliminación de datos: DELETE

Código

Creación y uso de funciones

Test

Vaciar tablas y bases de datos: DROP

Test

Consultas básicas de selección: SELECT y WHERE

Test

Creación de bases de datos y tablas

Código

Filtrado de valores únicos con DISTINCT

Test

Alterar la estructura de tablas existentes: ALTER TABLE

Test

Creación de tablas e inserción de datos con SQL

Proyecto

Asignación y gestión de permisos

Test

Optimización de consultas

Test

Introducción a SQL

Test

Triggers y eventos

Test

Copias de seguridad y restauración de bases de datos

Test

Filtrado de grupos de resultados con HAVING

Test

Eliminación de datos: DELETE

Test

Inserción de datos: INSERT INTO

Test

Instalación de PostgreSQL

Test

Agrupación de resultados con GROUP BY

Test

Actualización de datos: UPDATE

Test

Renombrar tablas y bases de datos: RENAME

Test

Creación de bases de datos y tablas: CREATE DATABASE, CREATE TABLE

Test

Bases de datos y tablas

Test

Consultas básicas de selección SELECT y WHERE

Código

Relaciones entre tablas

Test

Todas las lecciones de SQL

Accede a todas las lecciones de SQL y aprende con ejemplos prácticos de código y ejercicios de programación con IDE web sin instalar nada.

Introducción A Sql

Introducción Y Entorno

Sublenguajes De Sql: Data Definition Language Y Data Manipulation Language

Introducción Y Entorno

Instalación De Mysql

Introducción Y Entorno

Instalación De Postgresql

Introducción Y Entorno

Tipos De Datos

Introducción Y Entorno

Bases De Datos Y Tablas

Introducción Y Entorno

Creación De Bases De Datos Y Tablas: Create Database, Create Table

Operaciones Básicas

Consultas Básicas De Selección: Select Y Where

Operaciones Básicas

Inserción De Datos: Insert Into

Operaciones Básicas

Actualización De Datos: Update

Operaciones Básicas

Eliminación De Datos: Delete

Operaciones Básicas

Clasificación De Resultados Con Order By

Filtros Y Clasificación

Filtrado De Valores Únicos Con Distinct

Filtros Y Clasificación

Uso De Funciones Agregadas: Count, Sum, Avg, Max, Min

Funciones Agregadas Y Agrupaciones

Agrupación De Resultados Con Group By

Funciones Agregadas Y Agrupaciones

Filtrado De Grupos De Resultados Con Having

Funciones Agregadas Y Agrupaciones

Relaciones Entre Tablas

Joins Y Subqueries

Uso De Inner Join, Left Join, Right Join, Full Join

Joins Y Subqueries

Creación Y Uso De Subqueries

Joins Y Subqueries

Alterar La Estructura De Tablas Existentes: Alter Table

Manipulación De Tablas Y Datos

Renombrar Tablas Y Bases De Datos: Rename

Manipulación De Tablas Y Datos

Vaciar Tablas Y Bases De Datos: Drop

Manipulación De Tablas Y Datos

Creación Y Uso De Funciones

Funciones Y Procedimientos Almacenados

Creación Y Uso De Procedimientos Almacenados

Funciones Y Procedimientos Almacenados

Creación Y Manejo De Usuarios Y Roles

Seguridad Y Administración De Bases De Datos Sql

Asignación Y Gestión De Permisos

Seguridad Y Administración De Bases De Datos Sql

Copias De Seguridad Y Restauración De Bases De Datos

Seguridad Y Administración De Bases De Datos Sql

Optimización De Consultas

Sintaxis Avanzada

Uso De Índices Y Particiones

Sintaxis Avanzada

Uso De Vistas

Sintaxis Avanzada

Triggers Y Eventos

Sintaxis Avanzada

Certificados de superación de SQL

Supera todos los ejercicios de programación del curso de SQL y obtén certificados de superación para mejorar tu currículum y tu empleabilidad.

En esta lección

Objetivos de aprendizaje de esta lección

  1. Comprender el propósito de DISTINCT en SQL y cómo se aplica para eliminar duplicados en una consulta SELECT.
  2. Aprender a utilizar DISTINCT para obtener una lista de valores únicos en un campo específico.
  3. Entender cómo DISTINCT también puede aplicarse a múltiples campos para obtener combinaciones únicas de valores.
  4. Reconocer las consideraciones al usar DISTINCT, como su impacto en el rendimiento en grandes volúmenes de datos y el tratamiento de campos NULL.