Cuente las combinaciones distintas en varias columnas en SQL

Cuente Las Combinaciones Distintas En Varias Columnas En Sql



Cuando trabaje en bases de datos SQL, puede encontrar instancias en las que debe encontrar los valores distintos de una tabla determinada y eliminar los valores duplicados. En la mayoría de los casos, usamos principalmente la cláusula distintiva para especificar la columna cuyos valores son los que deseamos que sean únicos.

Pero, ¿qué sucede cuando desea asegurarse de que los valores de varias columnas sean únicos y no haya duplicados?







En este tutorial, aprenderemos a usar las funciones de SQL para seleccionar dos o más columnas y garantizar que sus valores sean distintos.



Problema:

Supongamos que tenemos una tabla con varias columnas y queremos contar el número de distintas combinaciones de valores en estas columnas.



Por ejemplo, consideremos una tabla de datos de ventas con las columnas customer_id, product_id y date. Queremos contar el número de combinaciones únicas de customer_id y product_id.





Cuente las combinaciones distintas en varias columnas en SQL

Podemos contar el número de combinaciones distintas en varias columnas usando la cláusula COUNT DISTINCT y la función CONCAT en SQL.

La función CONCAT nos permite concatenar dos o más valores en un solo valor que luego podemos usar para comparar y contar.



Podemos ilustrar mejor esto usando la siguiente sintaxis:

SELECCIONAR CONTEO ( CONCAT DISTINTO ( columna1, columna2 ) )
DESDE table_name;

 
En este caso, column1 y column2 se refieren a las columnas que deseamos concatenar mientras contamos y table_name se refiere al nombre de la tabla de destino.

Tomemos una tabla de muestra:

CREAR TABLA de ventas (
  identificación CLAVE PRIMARIA INT,
id_cliente INT,
producto_id INT,
  fecha FECHA
) ;

INSERTAR EN VALORES de ventas
  ( 1 , 100 , 1 , '2023-05-01' ) ,
  ( 2 , 101 , 1 , '2023-05-02' ) ,
  ( 3 , 100 , 2 , '2023-05-02' ) ,
  ( 4 , 102 , 3 , '2023-05-03' ) ,
  ( 5 , 101 , 2 , '2023-05-03' ) ,
  ( 6 , 103 , 2 , '2023-05-04' ) ,
  ( 7 , 100 , 3 , '2023-05-04' ) ,
  ( 8 , 102 , 1 , '2023-05-05' ) ,
  ( 9 , 101 , 3 , '2023-05-05' ) ,
  ( 10 , 103 , 1 , '2023-05-06' ) ;

 
Tabla resultante:


Para determinar el número de combinaciones únicas de las columnas customer_id y product_id de la tabla anterior, podemos usar la consulta de la siguiente manera:

SELECCIONAR CONTEO ( CONCAT DISTINTO ( Identificación del cliente, '-' , ID del Producto ) ) como resultado
DE las ventas;

 
En la consulta anterior, usamos la cláusula distintiva y la función concat para concatenar los valores de customer_id y product_id con un guión. Esto debería crear un valor único para cada combinación como se muestra a continuación:


Desde aquí, podemos usar la función de conteo para contar las combinaciones únicas de la tabla resultante.

Conclusión

Esperamos que este tutorial te haya ayudado. En esta publicación, descubrió cómo combinar la cláusula distintiva, la función concat() y la cláusula de conteo para determinar los valores únicos de varias columnas de la tabla SQL.