Compter les combinaisons distinctes sur plusieurs colonnes en SQL

Compter Les Combinaisons Distinctes Sur Plusieurs Colonnes En Sql



Lorsque vous travaillez dans des bases de données SQL, vous pouvez rencontrer de tels cas où vous devez trouver les valeurs distinctes d'une table donnée et supprimer les valeurs en double. Dans la plupart des cas, nous utilisons principalement la clause distinct pour spécifier la colonne dont les valeurs sont ce que nous souhaitons être unique.

Mais que se passe-t-il lorsque vous voulez vous assurer que les valeurs de plusieurs colonnes sont uniques et qu'il n'y a pas de doublons ?







Dans ce didacticiel, nous apprendrons à utiliser les fonctionnalités SQL pour sélectionner deux colonnes ou plus et nous assurer que leurs valeurs sont distinctes.



Problème:

Supposons que nous ayons une table avec plusieurs colonnes et que nous voulions compter le nombre de combinaisons distinctes de valeurs dans ces colonnes.



Par exemple, considérons une table de données de ventes avec les colonnes customer_id, product_id et date. Nous voulons compter le nombre de combinaisons uniques de customer_id et product_id.





Compter les combinaisons distinctes sur plusieurs colonnes en SQL

Nous pouvons compter le nombre de combinaisons distinctes sur plusieurs colonnes à l'aide de la clause COUNT DISTINCT et de la fonction CONCAT en SQL.

La fonction CONCAT nous permet de concaténer deux ou plusieurs valeurs en une seule valeur que nous pouvons ensuite utiliser pour comparer et compter.



Nous pouvons mieux illustrer cela en utilisant la syntaxe suivante :

SÉLECTIONNER LE COMPTE ( CONCAT DISTINCT ( colonne1, colonne2 ) )
FROM nom_table ;


Dans ce cas, column1 et column2 font référence aux colonnes que nous souhaitons concaténer lors du comptage et table_name fait référence au nom de la table cible.

Prenons un exemple de tableau :

Ventes CRÉER TABLE (
identifiant CLE PRIMAIRE INT,
id_client INT,
id_produit INT,
date DATE
) ;

INSÉRER DANS LES VALEURS DE VENTE
( 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' ) ,
( dix , 103 , 1 , '2023-05-06' ) ;


Tableau résultant :


Pour déterminer le nombre de combinaisons uniques des colonnes customer_id et product_id du tableau précédent, nous pouvons utiliser la requête comme suit :

SÉLECTIONNER LE COMPTE ( CONCAT DISTINCT ( N ° de client, '-' , id_produit ) ) comme résultat
DES ventes ;


Dans la requête précédente, nous utilisons la clause distinct et la fonction concat pour concaténer les valeurs de customer_id et product_id avec un trait d'union. Cela devrait créer une valeur unique pour chaque combinaison, comme illustré ci-dessous :


À partir de là, nous pouvons utiliser la fonction count pour compter les combinaisons uniques à partir du tableau résultant.

Conclusion

Nous espérons que ce tutoriel vous a aidé. Dans cet article, vous avez découvert comment combiner la clause distinct, la fonction concat() et la clause count pour déterminer les valeurs uniques de plusieurs colonnes de table SQL.