Saltar al contenido

SQL DISTINCT con ejemplos sencillos

El operador SQL DISTINCT se utiliza para eliminar registros duplicados dentro de tu consulta. El sistema de base de datos valida los valores de las columnas especificadas después del DISTINCT para evaluar la duplicidad de la fila en el conjunto de resultados. Si solo especifica una columna, el motor de base de datos solo verifica los valores de la columna indicada.


Dado que este operador usa un comparador «igual a» para validacion, si desea incluir NULL en el conjunto de resultados, necesitará usar IS NULL o IS NOT NULL después del DISTINCT. Estos ejemplos distinct en sql server, mysql y oracle por igual aplican tambien en sql server. Al momento de hacer estas validaciones es importante tomar en cuenta el orden en que se colocan las columnas en el select para evitar resultados

Para eliminar los registro duplicados de una consulta , se utiliza el DISTINCT ver ejemplo:

  1. SELECT DISTINCT column_1, column2
  2. FROM Tabla;

Tenga en cuenta que solo se puede usar DISTINCT en conjunto con un comando SELECT.

Índice

    Distinct sql server ejemplos

    La siguiente consulta muestra un listado de producto:

    1. SELECT [ProductID]
      ,[Name]
      ,[ProductNumber]
      ,[Color]
      ,[StandardCost] FROM [AventureWorks].[SalesLT].[Product]

    Ahora solo solo necesitamos saber cuales son los colores en los cuales me puede aparecer mi producto

    1. SELECT DISTINCT
      [Color]
      FROM [AventureWorks].[SalesLT].[Product]

    SQL DISTINCT Ejemplo con varias columnas

    La siguiente consulta muestra el listado de ciudades y estados unicos dentro de un catalogo de direccion de los clientes

    1. SELECT DISTINCT
      [StateProvince]
      ,[City]
      FROM [AventureWorks].[SalesLT].[Address]

    Al combinar mas de una columna el motor de base de datos evalúa y elimina los registros duplicados mostrando una lista de ciudades que pertenecen a un estado sin repetir los registros.

    Distinct con funciones aritmeticas

    Además de eliminar los duplicados, puede utilizar el operador DISTINCT con funciones como:

    • Count: COUNT(DISTINCT column)para contar valores distintos de una consulta.
    • SUM: SUM(DISTINCT column) para sumar valores distintos en una consulta.

    Ejemplo de como usar la función de conteo

    1. SELECT COUNT(DISTINCT [City])
      FROM [AventureWorks].[SalesLT].[Address]

    Suma de vaores con DISTINCT

    Suma valores de distintos precios unitarios de los productos del catalogo de productos, en conjunto con el operador DISTINCT y la función SUM de la siguiente manera:

    1. SELECT  SUM(DISTINCT unitprice)
      ,[StandardCost] FROM [AventureWorks].[SalesLT].[Product]

    Distinct con group by

    Utilizamos la consulta con la información aritmética si queremos agregar columnas para mostrar información agrupada solo debemos incluir group by

    1. SELECT  itemID, SUM(DISTINCT unitprice)
      ,[StandardCost] FROM [AventureWorks].[SalesLT].[Product] Group by ItemID

    Eliminar registros de una tabla

    la clausula Distinct no elimina registros duplicados solo remueve de la consulta los registros duplicados, haciendo que los mismo no se visualicen, para la técnica mas adecuada para eliminar registros duplicados de una tabla con el comando DELETE esta en este link de técnicas avanzadas para eliminar registros duplicados.

    En resumen SQL DISTINCT se utiliza para eliminar registros duplicados su uso puede ser aplicados con sentencias WHERE, GROUP BY , HAVING y JOINS.

    Gracias por seguir este articulo!!

    Hasta la proxima!!

    :D!!