Numărați combinațiile distincte pe mai multe coloane în SQL

Numarati Combinatiile Distincte Pe Mai Multe Coloane In Sql



Când lucrați în baze de date SQL, puteți întâlni astfel de cazuri în care trebuie să găsiți valori distincte dintr-un tabel dat și să eliminați valorile duplicate. În cele mai multe cazuri, folosim în principal clauza distinctă pentru a specifica coloana ale cărei valori sunt ceea ce dorim să fie unice.

Dar ce se întâmplă atunci când doriți să vă asigurați că valorile din mai multe coloane sunt unice și că nu există duplicate?







În acest tutorial, vom învăța cum să folosim caracteristicile SQL pentru a selecta două sau mai multe coloane și a ne asigura că valorile lor sunt distincte.



Problemă:

Să presupunem că avem un tabel cu mai multe coloane și dorim să numărăm numărul de combinații distincte de valori din aceste coloane.



De exemplu, să luăm în considerare un tabel cu date de vânzări cu coloanele customer_id, product_id și date. Dorim să numărăm numărul de combinații unice de client_id și product_id.





Numărați combinațiile distincte pe mai multe coloane în SQL

Putem număra numărul de combinații distincte pe mai multe coloane folosind clauza COUNT DISTINCT și funcția CONCAT în SQL.

Funcția CONCAT ne permite să concatenăm două sau mai multe valori într-o singură valoare pe care apoi o putem folosi pentru a compara și a număra.



Putem ilustra mai bine acest lucru folosind următoarea sintaxă:

SELECTAȚI NUMĂR ( CONCAT DISTINCT ( coloana1, coloana2 ) )
FROM table_name;


În acest caz, coloana1 și coloana2 se referă la coloanele pe care dorim să le concatenăm în timpul numărării, iar table_name se referă la numele tabelului țintă.

Să luăm un exemplu de tabel:

CREAȚI MASELE de vânzări (
id INT CHEIE PRIMARĂ,
customer_id INT,
product_id INT,
Data DATA
) ;

INSERT ÎN VALORI DE VÂNZARE
( 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' ) ;


Tabelul rezultat:


Pentru a determina numărul de combinații unice ale coloanelor customer_id și product_id din tabelul anterior, putem folosi interogarea după cum urmează:

SELECTAȚI NUMĂR ( CONCAT DISTINCT ( Număr de înregistrare client, '-' , product_id ) ) la fel de rezultat
DIN vânzări;


În interogarea anterioară, folosim clauza distinctă și funcția concat pentru a concatena valorile client_id și product_id cu o cratimă. Aceasta ar trebui să creeze o singură valoare pentru fiecare combinație, așa cum se arată în următoarele:


De aici, putem folosi funcția de numărare pentru a număra combinațiile unice din tabelul rezultat.

Concluzie

Sperăm că acest tutorial v-a ajutat. În această postare, ați descoperit cum să combinați clauza distinctă, funcția concat() și clauza count pentru a determina valorile unice din mai multe coloane de tabel SQL.